2012-10-06 45 views
1

有與創建反對使用剃刀一把umbraco一個博客RSS提要的問題。以下作品的代碼,但只要我嘗試添加任何值的項目節點,我得到XML錯誤下的鏈接標籤,下面是代碼。ASP.NET RSS訂閱錯誤鏈接標籤項的節點?問題與剃刀一把umbraco RSS訂閱

<rss version="2.0"> 
    <channel> 
     <title>@landing.uBlogsyRssTitle</title> 
     <description>@landing.uBlogsyRssDescription</description> 
     <copyright>@landing.uBlogsyRssCopyright</copyright> 
     @*<image>@landing.uBlogsyRssImage</image>*@ 
     <link>@[email protected]</link> 
     <lastBuildDate>@lastPubDate.FormatDateTime("ddd, dd MMMM yyyy HH:mm:ss")</lastBuildDate> 
     <pubDate>@lastPubDate.FormatDateTime("ddd, dd MMMM yyyy HH:mm:ss")</pubDate> 
     @foreach (var p in posts) 
     { 
     <item> 
      <title>@p.GetProperty("uBlogsyContentTitle").Value</title>    
      <link></link> 
      <author>@p.GetProperty("uBlogsyPostAuthor").Value</author> 
      <description>@p.GetProperty("uBlogsyContentBody").Value.StripHtml().Trim()</description>    
      <guid>@p.Url</guid> 
      <pubDate>@p.GetProperty("uBlogsyPostDate").Value.FormatDateTime("ddd, dd MMMM yyyy HH:mm:ss")</pubDate> 
     </item> 
     } 
</channel> 
</rss> 

回答

4

這是我的回答另一篇文章與解決同樣的問題:

由於MVC4剃刀驗證你正在嘗試寫是有效的HTML。如果你不這樣做,剃刀會失敗。

你的代碼試着寫不正確HTML:

如果你看documentation of link tag in w3schools你可以閱讀以不同的方式表達了同樣的事情:

  • 「元素是空元素,它包含屬性只要。」
  • 「在HTML標籤沒有結束標籤。」

這是什麼意思是,鏈接是一個獨立標記,所以你必須寫這個標籤作爲一個自閉的標籤,就像這樣:

<link atrib1='value1' attrib2='value2' />

所以你不能做什麼你試圖這樣做:使用內部內容的開放標籤和結束標籤。

這就是爲什麼剃鬚刀無法產生這個你<xml>文檔。

但有你可以欺騙剃刀的一種方法:不要讓它知道你在寫一個標籤,就像這樣:

@Html.Raw("<link>")--your link's [email protected]("</link>")

記住,剃刀是編寫HTML所以寫XML它可能會變得有點棘手。

+0

輝煌!感謝那 –