2010-10-29 62 views
0

我使用下面的代碼位顯示一些內容:截斷ASP.NET MVC C#

<% foreach (var m in ViewData.Model) { %> 

<div class="content"> 
<%= m.article %> 
</div> 

其中顯示了從我的數據庫的新聞文章。我想要做的是將故事截斷得更小,我該怎麼做?此外,文章列包含HTML標記,如<p>,因此純粹根據字符數分割文章會導致問題。

任何想法從哪裏開始?我是MVC的新手。

感謝

回答

0

這不是一個簡單的問題,但你可以通過使用HtmlAgilityPack開始。

這是一個靈活的HTML解析器 建立一個讀/寫DOM,並支持 平原XPath或XSLT(你實際上 不必須瞭解XPATH也不 XSLT使用它,不要擔心。 ..)。它是 一個.NET代碼庫,它允許您將 解析爲「超出網頁」的HTML文件。解析器對「真實 世界」格式不正確的HTML非常寬容。對象 模型非常類似於建議 System.Xml,但對於HTML文檔(或 流)。

一旦你有你的DOM在內存中,你就可以提取或的方式,不會破壞DOM結構,例如截斷的元素,你可以刪除整個<p></p>節點,或只是削減一些FO該節點內的文本。

+0

嗨,我不想下載任何額外的東西。我想純粹使用默認框架。 – Cameron 2010-10-29 14:24:08

+0

默認框架不包含任何內容來處理HTML的混亂。如果您知道您的內容是有效的XHTML(或者您可以將其轉換爲),那麼只需使用C#中的XML類來做類似的事情即可。 – RedFilter 2010-10-29 14:26:43

+0

是的,它是有效的XHTML。你能解釋如何做到這一點。就像我說的我是C#和MVC的新手,因此不太確定你的意思。 – Cameron 2010-10-29 14:31:08

0

您是否可以控制物品的提交方式?也許你可以要求一個簡短的介紹/總結。我相信WordPress做到了。

或者讓用戶插入一個表示介紹/摘要結束的標記。如:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> 
<!-- END INTRO --> 
<p>Ut malesuada porttitor consectetur. </p> 

您可以顯示它沒有任何後果,仍然以編程方式「分裂」該文章。