2016-04-15 13 views
2

基本的に私はMVCのECommerceアプリケーションで作業しており、Productの説明をデータベースにHTML形式で保存しておきたいと思っています。今度は、Product Detailページの説明をHTMLに指定されている正しいフォーマットにし、Descriptionの文字が「表示する」と「表示する」よりも500文字を超えるようにすることです。少ない機能性。正しい形式のHTMLを解析する

は、ここでの問題は、上記の500の文字も正しくをHTMLタグを解析していないhtmlタグとsubstring関数をカウントし、いくつかのポイントがあり、タグ・ミスを終了するということである私のコード

@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> 
} 

しかしです。

+2

最初は正確に500文字を表示する必要がありますか?あなたはcssスタイル( 'overflow:hidden; white-space:nowrap; text-overflow:省略形;')を使用してdivの1行のテキストをもっと簡単に表示することができ、これらのスタイルを切り替えて、ボタンをクリックした –

+1

[this fiddle](https://jsfiddle.net/2ubxmagy/1/)のようなもの? –

+1

あなたは短い説明も保存することができ、長い記述があるときにそれを展開することができます – lukbl

答えて

0

1つの方法は、説明をXElementに解析し、タグなしの説明を返すその値を求めることです。これは、HTMLが有効な場合にのみ機能します。

XElement descElem = XElement.Parse(descriptionText); if(descElem.Value < = 500) {//データベースに保存}

関連する問題