我正在使用Razor.Engine生成基于模板的HTML电子邮件。我想使用HttpUtility来测试字符编码遇到的一个问题,我发现Razor抱怨找不到对库的引用,并得到“当前上下文中不存在HttpUtility名称”。
我使用的代码非常简单:
string content = fileSystem.File.ReadAllText(pathToTemplate);
service.AddTemplate(templateKey, content);
service.Compile(templateKey, typeof(TModel));
var result = service.Run(templateKey, typeof(TModel), model);
System.Web可用于运行此代码的项目,但好像Razor在寻找其他地方吗?这是我看不到的简单东西吗?
在模板中,我这样称呼它:
<p>Hi @(System.Web.HttpUtility.HtmlEncode(@Model.UserFirstName)) @(System.Web.HttpUtility.HtmlEncode(@Model.UserLastName)),</p>
我确定您可能会认为这将导致双重编码,但是我们遇到了一个问题,Razor似乎在不编码的情况下输出了一个特殊字符,因此我想测试一下这会做什么和不能做什么。不能正常工作。