RazorEngine динамически добавляет в cshtml

У меня проблема с использованием RazorEngine при создании плагина в nopcommerce.
Мой исходный код в OnActionExecuted:

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
   var m = filterContext.Result as ViewResultBase;
   string newTag = @"@using Nop.Plugin.Misc.Helper.Extensions; @using Nop.Web.Framework.ViewEngines.Razor;
   <div class='inputs date-of-birth'/ <label>@T('Account.Fields.DateOfBirth'):</label></div>";
    var res = "Hello World";
    if (m != null)
   {
     var model = m.Model as RegisterModel;
     var service = Engine.Razor;   
     service.AddTemplate("templateRegister", newTag);
     service.Compile("templateRegister");
     res = service.Run("templateRegister", null, model);
     filterContext.HttpContext.Response.Write(res);
   }
}

Но при компиляции и запуске я столкнулся с этой ошибкой:

RazorEngine.Templating.TemplateCompilationException: «Ошибки при компиляции шаблона. Пожалуйста, попробуйте следующее, чтобы разрешить ситуацию: * Если проблема связана с отсутствующими/недействительными ссылками или несколькими определениями, либо попробуйте загрузить отсутствующие ссылки вручную (в домене компилируемого приложения!), либо укажите свои ссылки вручную, предоставив собственную реализацию IReferenceResolver. Дополнительные сведения см. на странице https://antaris.github.io/RazorEngine/ReferenceResolver.html. . В настоящее время все ссылки должны быть доступны в виде файлов! * Если вы получаете, что «класс» не содержит определения для «члена»: попробуйте другой тип модели (например, «нуль», чтобы сделать модель динамической). ПРИМЕЧАНИЕ. Вы НЕ МОЖЕТЕ использовать typeof(dynamic), чтобы сделать модель динамической! Или попробуйте использовать статические вместо анонимных/динамических типов. Подробнее об ошибке: - ошибка: (36, 79) Слишком много символов в символьном литерале Временные файлы компиляции можно найти в (пожалуйста, удалите папку): C:\Users\Chegini.h\AppData\Local\Temp \RazorEngine_tfr2i1nu.3fl Шаблон, который мы пытались скомпилировать: ------------- START ----------- @using Nop.Plugin.Misc.NchShamsiDate.Extensions; @using Nop.Web.Framework.ViewEngines.Razor;

@T('Учетная запись.Поля.ДатаРождения'):

Посоветуйте, если можно!


person Hamid N.CH    schedule 08.05.2017    source источник


Ответы (1)


Проблема с @T('Account.Fields.DateOfBirth'), нужны двойные кавычки @T("Account.Fields.DateOfBirth")

person animalito maquina    schedule 11.05.2017