Mar*_*rta 2 .net html asp.net-mvc umbraco razor
当我使用@ 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>
Run Code Online (Sandbox Code Playgroud)
我需要那些html标签不是作为字符串呈现,而是为了工作和格式化文本.所以看起来更像是这样:
路易斯安那州为州政府资助的配药计划2011年6月21日
软件更新:版本3.1快10%
我正在使用基于.Net Framework 4和MVC3的Umbraco 5.
我部分观点的代码:
@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
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用@Umbraco.Field(Model, "bodyText")而不是@item.BodyText然后我得到当前页面的内容,而不是我需要的"新闻"页面.
任何帮助非常感谢!
在Razor中,这是出于安全原因.所有视图输出都是Html编码,以防止注入.
您总是需要明确声明您不希望Razor对您的原始输出进行HTML编码,您可以通过使用Html.Raw()辅助方法包装语句来完成此操作:
更换:
@item.BodyText
Run Code Online (Sandbox Code Playgroud)
有:
@Html.Raw(item.BodyText)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |