2010-10-29 59 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> 

您可以显示它没有任何后果,仍然以编程方式“分裂”该文章。