2016-04-15 56 views
2

基本上我想问我在MVC中的电子商务应用程序中工作,并且我已经在数据库中以HTML格式存储了Product的描述。现在我所要做的就是在Product Detail页面上显示说明,以便说明应该具有HTML中指定的正确格式,并且 Description的字符超过了500个字符,而不是显示“显示更多”和“显示较少的功能。以正确的格式解析HTML字符串

这里是我的代码

@if (Model.product.FullDescription.Count() > 500) 
{ 
    <p id="fdescription" class="description"> 
     @Html.Raw(Model.product.FullDescription.Substring(0, 500)) 
     <a id="showmore" onclick="showdescription(1)" 
      style="color:rgb(0,127,234);cursor:pointer"> 
              Show More</a> 
    </p> 
    <p id="ffdescription" class="description"> 
     @Html.Raw(Model.product.FullDescription) 
     <a id="showless" onclick="showdescription(2)" 
      style="color:rgb(0,127,234);cursor:pointer">Show Less</a> 
    </p> 
} 
else 
{ 
    <p id="fdescription" class="description"> 
     @Html.Raw(Model.product.FullDescription) 
    </p> 
} 

上面的问题是,500个字符也算html标签和子功能没有正确地解析HTML标签和某个时候结束标记遗漏。

+2

是否需要最初显示500个字符。你会发现使用CSS样式('overflow:hidden; white-space:nowrap; text-overflow:ellipsis;')在div中显示一行文本并切换这些样式,以便在按钮(s)被点击 –

+1

像[这个小提琴](https://jsfiddle.net/2ubxmagy/1/)? –

+1

您也可以存储简短描述,并允许在存在长描述时进行扩展 – lukbl

回答

0

一种方法是将描述解析为XElement并询问其值,该值返回无标签的描述。这仅适用于HTML有效的情况。

XElement descElem = XElement.Parse(descriptionText); if(descElem.Value < = 500) {//保存到数据库}