我有以下 XML:
<stories>
<story id="1234">
<title>This is a title</title>
<date>1/1/1980</date>
<article>
<![CDATA[<p>This is an article.</p>]]>
</article>
</story>
</stories>
以及以下 C# 中的 Linq to XML 代码:
@{
XDocument xmlDoc = XDocument.Load("foo.xml");
var stories = from story in xmlDoc.Descendants("stories")
.Descendants("story")
.OrderByDescending(s => (string)s.Attribute("id"))
select new
{
title = story.Element("title").Value,
date = story.Element("date").Value,
article = story.Element("article").Value,
};
foreach (var story in stories)
{
<text><div class="news_item">
<span class="title">@story.title</span>
<span class="date">@story.date</span>
<div class="story">@story.article</div>
</div></text>
}
}
呈现的 HTML 输出到浏览器为:
<div class="news_item">
<span class="title">This is a title</span>
<span class="date">1/1/1980</span>
<div class="story"><p>This is an article.</p></div>
</div>
我想要 <p>
标记呈现为浏览器的 HTML,未编码。我该如何实现?
最佳答案
Razor 默认对值进行编码。您需要使用 Html.Raw 帮助器来避免它 ( Html.Raw() in ASP.NET MVC Razor view )
<div class="story">@Html.Raw(story.article)</div>
关于c# - Linq to XML - 将 CDATA 呈现为 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409125/