У меня проблема с использованием 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('Учетная запись.Поля.ДатаРождения'):
Посоветуйте, если можно!