当我使用@item.BodyText 时,我得到了原始的html 输出——其中包含作为字符串的html 标签。看起来像这样:
<p>State of Louisiana for state funded dispensing program<br>June 21, 2011<br><br>Software update:<br>Version 3.1 is 10% faster<br>
而且我需要那些 html 标签不以字符串形式呈现,而是用于工作和格式化文本。这样它看起来更像:
State of Louisiana for state funded dispensing program June 21, 2011
Software update: Version 3.1 is 10% faster
我正在使用基于 .Net Framework 4 和 MVC3 的 Umbraco 5。
我的局部 View 代码:
@inherits RenderViewPage
@using Umbraco.Cms.Web;
@{
var Homepage = @DynamicModel;
while (Homepage.ContentType.Alias != "homePage")
{
Homepage = Homepage.Parent;
}
}
@foreach (var item in Homepage.Children)
{
if (@item.CurrentTemplate != null)
{
var childName = item.Name ?? "(No name yet)";
if (childName == "News")
{
@item.BodyText
}
}
}
我尝试使用 @Umbraco.Field(Model, "bodyText")
而不是 @item.BodyText
但后来我得到了当前页面的内容,而不是“新闻” "我需要的页面。
非常感谢任何帮助!
最佳答案
在 Razor 中,出于安全原因会发生这种情况。所有 View 输出都经过 Html 编码以防止注入(inject)。
您始终需要明确声明您不希望 Razor 对原始输出进行 HTML 编码,您可以通过使用 Html.Raw()
helper 方法包装您的语句来做到这一点:
替换:
@item.BodyText
与:
@Html.Raw(item.BodyText)
关于.net - @item.BodyText 在 MVC3 中不是原始格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9483660/