RazorEngine问题与@Html
我正在使用RazorEngine呈现一些基本内容(非常粗糙的内容管理系统)。
直到我将任何@Html语法包含到标记中,它才能工作。
如果标记包含@html,则会出现以下错误:
无法编译模板。 名称'Html'在当前上下文中不存在
这是呈现标记的视图:
@Model Models.ContentPage
@{
ViewBag.Title = Model.MetaTitle;
Layout = "~/Views/Shared/Templates/_" + Model.Layout + "Layout.cshtml";
}
@Html.Raw(RazorEngine.Razor.Parse(Model.Markup, Model))
我在Codeplex网站上看到了RazorEngine使用@Html(我知道那里的版本已经过时,我通过nuget获得了我的版本)。
任何对此的帮助都会很大。
Html
和Url
助手属性是MVC在其视图引擎中实现Razor的实际功能。 开箱即用, Html
和Url
目前不支持专门定制的基本模板。
即将发布的v3版本将附带一个关联的RazorEngine.Web版本,该版本将包含一个兼容Html
和Url
的MVC3兼容基本模板。
我在项目主页上撰写的示例纯粹是使用自定义基本模板的示例。
你可以在https://github.com/Antaris/RazorEngine找到关于v3的更多信息
检查https://github.com/Antaris/RazorEngine/wiki/6.-Encoding-Values页面。 我在这里复制/过去:
默认情况下,RazorEngine被配置为编码为HTML。 这有时会出现问题,当某些字符被编码为HTML时,您希望输出保持原样。
要以原始格式输出内容,请使用@Raw()内置方法,如以下示例所示:
string template = "@Raw(Model.Data)";
var model = new { Data = "My raw double quotes appears here "hello!"" };
string result = Razor.Parse(template, model);
这应该导致:
My raw double quotes appears here "hello!"
这是一个相当古老的问题,但我在coderwall上找到了很好的答案。 解决方案是使用:
@(new RawString("<strong>Bold!</strong>"))
要不就:
@(new RawString(Model.YourHTMLStrinInModel))
我希望这是有帮助的。
链接地址: http://www.djcxy.com/p/65089.html上一篇: RazorEngine issues with @Html
下一篇: Error run Joomla 3.4.5 on CentOS 6.7 installed Sentora panel 1.0.3