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获得了我的版本)。

任何对此的帮助都会很大。


HtmlUrl助手属性是MVC在其视图引擎中实现Razor的实际功能。 开箱即用, HtmlUrl目前不支持专门定制的基本模板。

即将发布的v3版本将附带一个关联的RazorEngine.Web版本,该版本将包含一个兼容HtmlUrl的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