Razor Engine не работает в ASP.net 5 MVC 6

Я пытаюсь перенести некоторый существующий код с MVC5 на MVC6, и у меня возникают трудности с этим конкретным кодом:

 Engine.Razor.RunCompile(File.ReadAllText(emailTemplatePath), "emailTemplateKey", typeof (EmailViewModel), emailViewModel);

Я получаю следующую ошибку времени выполнения:

MissingMethodException: Method not found: "Void Microsoft.AspNet.Razor.CodeGenerators.GeneratedClassContext.set_ResolveUrlMethodName(System.String)". in RazorEngine.Compilation.CompilerServiceBase.CreateHost(Type templateType, Type modelType, String className)

Исходный код, который я использовал в MVC5, был взят здесь. Если нет способа преобразовать приведенный выше код для работы с MVC6, каков еще один элегантный способ создания шаблонов электронной почты?


person Cool Breeze    schedule 27.01.2016    source источник
comment
Не упоминайте другие посты, в которых описывается проблема, схожая с вашей, без объяснения вашей ситуации. Также опубликуйте свой код и сообщения об ошибках, которые вы получаете. Пожалуйста, взгляните на stackoverflow.com/help/how-to-ask, а затем отредактируйте свой вопрос.   -  person Manos Pasgiannis    schedule 01.02.2016
comment
вы хотите перейти с mvc5 на mvc6 или создать шаблон электронной почты   -  person anand    schedule 04.02.2016


Ответы (1)


Очевидно, произошли изменения в GeneratedClassContext - свойство ResolveUrlMethodName больше не существует, поэтому MissingMethodException. Похоже на ParserContext тоже изменился, так как обращение к обработчику событий OnError вызывает такое же исключение.

На самом деле это сеттер отсутствующего свойства (простите за выражение!), который, будучи методом, вызывает исключение. Абсолютно точное, но несколько вводящее в заблуждение, если только вы не помните это.

Довольно похожий вопрос (и хороший ответ с альтернативным решением!) здесь: RazorEngine и MVC 6 бета 7.

person Alexander Christov    schedule 03.02.2016