如果我使用以下代码,则视图呈现良好。但是,如果我将URL更改为必要的RSS规范。该视图将不会呈现,并引发错误,指出该标记无效,因此该错误发生在链接标记处。无论我怎么尝试,剃须刀foreach内的链接标签都无法正确编译。
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.RSsfeed>
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{
Layout = null;
Response.ContentType = "text/xml";
var rootNode = Umbraco.TypedContentAtRoot().First();
var newsNodes = umbraco.uQuery.GetNodesByType("newsDetail");
}<?xml version="1.0"?>
<!-- News Aritcles -->
<rss version="2.0" xmlns:newsArticles="https://xxx.xxxxxxx.xxx/news">
<channel>
<title>News Aritcles</title>
<link>https://xxx.xxxxxxx.xxx/news</link>
<description>News Aritcles</description>
<language>en-us</language>
<ttl>1440</ttl>
@foreach(var newsNode in newsNodes){
var newsContent = UmbracoContext.Current.ContentCache.GetById(newsNode.Id);
string nnDescription = newsContent.GetPropertyValue("description").ToString();
string nnPublishDate = newsContent.GetPropertyValue("publishDate").ToString();
<item>
<title>@newsNode.Name</title>
<url>https://xxx.xxxxxxx.xxx@{@newsNode.Url}</url>
<description>@nnDescription</description>
<pubDate>@nnPublishDate</pubDate>
<guid>https://xxx.xxxxxxx.xxx@{@newsNode.Url}</guid>
</item>
}
</channel>
</rss>
<link/>
是一个void元素,因此只有一个开始标签而没有结束标签-请参见W3C HTML Language Reference
您可以这样输出标签
@("<link>" + newsNode.Url + "</link>")
希望这会有所帮助