2013-02-13 110 views
2

我目前正在以不同的方式使用truncate和texteditor。這兩個工作正常,但我面臨這個問題。我想截斷texteditor中的文本。 T_T

進出口使用截斷這種方式,其工作在ASP.Net中截斷模型屬性MVC

@helper Truncate(string input, int length) 
    { 
    if (input.Length <= length) 
    { 
     @input 
    } 
    else 
    { 
     @input.Substring(0, length)<text>...</text> 
    } 
} 


@foreach (var item in Model) 
{  
     <div> 
      @Truncate(item.DetailDescription, 400) 
     </div> 
} 



林宣佈原料叫一個文本編輯這樣的,它也工作正常

@html.Raw(item.DetailDescription) 


問題:我怎麼可能將這兩個函數結合在一個函數中?這甚至是可能的嗎?T_T

回答

2

我以前就是這樣做的。我這樣做了。

@helper Truncate(string input, int length) 
{ 
    if (input.Length <= length) { 
    @Html.Raw(input) 
    } else { 
    var thisString = input.Substring(0, length); 
    @Html.Raw(thisString) 
      } 
} 

我結合截斷幫手內生那麼我所說的截斷這樣

@Truncate(item.DetailDescription, 400) 
+1

很酷我正在嘗試ssilas777的建議,但你的答案更快。謝謝。這答案.. :) – bot 2013-02-13 07:09:52

+0

好..這將是有益的太..http://blogs.msdn.com/b/aspnetue/archive/2010/09/17/second_2d00_post.aspx – ssilas777 2013-02-13 08:32:19

5

將業務邏輯放在模型中總是更好。

我會在模型本身中添加另一個屬性'TruncatedDescription'。

public string TruncatedDescription 
    { 
     get 
     { 
      return this.DetailDescription.Length > 400 ? this.DetailDescription.Substring(0, 400) + "..." : this.DetailDescription; 
     } 
    } 

這樣你就可以在視圖中使用這個直接

@foreach (var item in Model) 
{  
     <div> 
      item.TruncatedDescription 
     </div> 
} 

如果你是以下這種方法,你可以在文本編輯器中使用item.TruncatedDescription與出html.Row幫助,因爲這不會是HTML編碼。

+1

我沒有問題,我截斷它的唯一,我想截斷文本編輯中的文本。但+1爲我介紹另一種方法如何做到這一點.. :) – bot 2013-02-13 06:48:25

+0

@bot回答編輯。 – ssilas777 2013-02-13 07:03:57

+0

我不得不同意在模型中使用業務邏輯肯定比在視圖中更好。 – javamonk 2013-11-19 12:47:25

相關問題