在非电子商务中创建插件时,我在使用RazorEngine时遇到了问题。
我在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。目前,所有引用都必须作为文件使用!*如果您得到的'class‘不包含’member‘的定义:尝试另一个modelType (例如,'null’使模型动态)。注意:您不能使用the ( dynamic )来使模型动态!或者尝试使用静态而不是匿名/动态类型。关于错误的更多细节:-错误:(36,79)可以在编译的字符文字临时文件中找到太多字符(请删除文件夹):C:\Users\Chegini.h\AppData\Local\Temp\RazorEngine_tfr2i1nu.3fl我们试图编译的模板是:-开始 @T('Account.Fields.DateOfBirth'):
如果可能的话,请告诉我!
发布于 2017-05-11 10:01:51
问题在于@T('Account.Fields.DateOfBirth'),它需要双引号@T("Account.Fields.DateOfBirth")
https://stackoverflow.com/questions/43845190
复制相似问题