RazorGenerator, Шаблоны и @Html

я пытаюсь использоватьRazorGenerator в качестве механизма шаблонов электронной почты. Я хочу взять модель с данными, собрать правильный набор частичных представлений и вернуть HTML, который я могу отправить по электронной почте.

Редактировать: В дополнение к этому рабочему процессу любое решение должно быть доступно для редактирования в виде файла .cshtml ибыть в состоянии скомпилировать в dll, По разным причинам нецелесообразно развертывать сами файлы cshtml - если мы можеммы не можем встроить все наши бритвенные изображения в один файл, тогда мы не сможемне использовать это предложение. Отсюда RazorGenerator.

Пока что яМы разработали каждую его часть, кроме частичных. Когда я пытаюсь использовать @ Html.Partial () в файле шаблона, я получаю:.The name 'Html' does not exist in the current context

На основеэтот ответ, Я знаю это@Html ISN»часть Razor по умолчанию, и тамЕсть много ответов о том, как создатьHtmlHelper в контроллере. Тем не менее, мне нужно создать один в шаблоне, который неестьControllerContext что я'Я должен последовать этим примерам.

мы также пытались использовать @Include, но шаблон RazorGenerator неКажется, я это поддерживаю.Редактировать: Я также попытался создать новый класс, который унаследовал отTemplateBase и скопировал всю функциональностьRazorTemplateBase, но я получаюNullReferenceExceptionна@Include линия.

Итак, мой основной вопрос: есть ли лучший способ включить другой файл Razor (с моделью) в мой файл?

Во-вторых, если нетКак лучше создать HtmlHelper?

Изменить за вознаграждение: Просто повторюсь, четыре вещи, которые мне нужны в приемлемом ответе:

Возможность редактирования.cshtml файлы со стандартным редактором (нет "сохранить его как строку или такой)Возможность скомпилировать все в одну DLL, которая может быть развернута с использованием нашей текущей системы сборки (мы можем 'т развернуть много отдельных .cshtml 's)Возможность ссылаться на один файл .cshtml из другого и передавать модель - эквивалентно@Includes или же@Html.Partial (Любой из которых вполне приемлем, если они работают)Возможность отправить результат по электронной почте с вложениями. (У меня уже есть код для этого, если результат является строкой или может быть преобразован в единицу.)

В настоящее время я могу получить большинство комбинаций из трех из них, но я могуполучить все четыре сразу. Я'Я открыт для новых библиотек, заменяя RazorGenerator или выбрасывая любую часть того, что у меня уже есть, при условии, что результат работает по мере необходимости.

Ответы на вопрос(2)

Ваш ответ на вопрос