我正在尝试截断一个长字符串,只在我的首页上显示。它的显示方式如下:
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
描述可以长达500个字符,但在那个网格布局上我无法展示那么多。我希望只显示前25个字符,因为他们可以在详细页面上看到全部内容,但似乎无法在模型层面上截断它。
像这样的方式会很好:
@Html.DisplayFor(modelItem => item.Description.Take(25))
@Html.DisplayFor(modelItem => item.Description.Substring(0,25)
编辑
当我尝试使用任一方法时,在运行时我会遇到以下异常。
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Html.DisplayFor
的表达式必须引用实际属性,而不是特定值。换句话说,你只能使用@Html.DisplayFor(m => item.Description)
,而不能使用@Html.DisplayFor(m => item.Description.Substring(0, 25))
。但是,你不需要为此使用Html.DisplayFor
,所以你可以直接写@item.Description.Substring(0, 25)
。然而,请记住 @48klocs 对 Nathan A 的回答的评论。 - Chris PrattTake()
返回的是IEnumerable<char>
,而不是字符串。Substring()
更适合这种情况。 - Nathan A