2013-02-13 79 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

相关问题