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 или выбрасывая любую часть того, что у меня уже есть, при условии, что результат работает по мере необходимости.