我使用下面的代碼位顯示一些內容:截斷ASP.NET MVC C#
<% foreach (var m in ViewData.Model) { %>
<div class="content">
<%= m.article %>
</div>
其中顯示了從我的數據庫的新聞文章。我想要做的是將故事截斷得更小,我該怎麼做?此外,文章列包含HTML標記,如<p>
,因此純粹根據字符數分割文章會導致問題。
任何想法從哪裏開始?我是MVC的新手。
感謝
我使用下面的代碼位顯示一些內容:截斷ASP.NET MVC C#
<% foreach (var m in ViewData.Model) { %>
<div class="content">
<%= m.article %>
</div>
其中顯示了從我的數據庫的新聞文章。我想要做的是將故事截斷得更小,我該怎麼做?此外,文章列包含HTML標記,如<p>
,因此純粹根據字符數分割文章會導致問題。
任何想法從哪裏開始?我是MVC的新手。
感謝
這不是一個簡單的問題,但你可以通過使用HtmlAgilityPack開始。
這是一個靈活的HTML解析器 建立一個讀/寫DOM,並支持 平原XPath或XSLT(你實際上 不必須瞭解XPATH也不 XSLT使用它,不要擔心。 ..)。它是 一個.NET代碼庫,它允許您將 解析爲「超出網頁」的HTML文件。解析器對「真實 世界」格式不正確的HTML非常寬容。對象 模型非常類似於建議 System.Xml,但對於HTML文檔(或 流)。
一旦你有你的DOM在內存中,你就可以提取或的方式,不會破壞DOM結構,例如截斷的元素,你可以刪除整個<p></p>
節點,或只是削減一些FO該節點內的文本。
您是否可以控制物品的提交方式?也許你可以要求一個簡短的介紹/總結。我相信WordPress做到了。
或者讓用戶插入一個表示介紹/摘要結束的標記。如:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<!-- END INTRO -->
<p>Ut malesuada porttitor consectetur. </p>
您可以顯示它沒有任何後果,仍然以編程方式「分裂」該文章。
嗨,我不想下載任何額外的東西。我想純粹使用默認框架。 – Cameron 2010-10-29 14:24:08
默認框架不包含任何內容來處理HTML的混亂。如果您知道您的內容是有效的XHTML(或者您可以將其轉換爲),那麼只需使用C#中的XML類來做類似的事情即可。 – RedFilter 2010-10-29 14:26:43
是的,它是有效的XHTML。你能解釋如何做到這一點。就像我說的我是C#和MVC的新手,因此不太確定你的意思。 – Cameron 2010-10-29 14:31:08