我首先使用带有实体框架6.1代码的asp MVC 5。 我对这些文章提出了看法。
我想只将内容中的前100个字符放在索引视图中。我该怎么做 ?
<td>
@Html.DisplayFor(modelItem => item.Content)
</td>
答案 0 :(得分:5)
跳过Html.DisplayFor
并直接渲染子字符串。
<td>@item.Content.Substring(0, 100)</td>
渲染引擎(假设为Razor)将为您正确地转义字符串。
您DisplayFor
尝试失败的原因是,如果您尝试使用@Html.DisplayFor(x => x.Content.Substring(0, 100))
,则传递给Expression<Func<TModel, string>>
的{{1}}变得过于复杂使用。 DisplayFor
期望一个简单的属性访问,而不是任意表达。
答案 1 :(得分:0)
我猜您在@foreach
循环中使用它,所以..
.Substring()
方法就是方法,但如果您的item.Content
字符数小于100,您的视图将会繁荣。
你需要在前100个字符之前检查它。试试这个:
@if (item.Content.Length >= 100)
{
@item.Content.Substring(0, 99)
<text> ... </text>
}
else
{
@item.Content
}
我们使用.Substring(0, 99)
因为它是一个char数组,它的索引值从0开始,就像任何数组一样,第100个char在第99个arrayItem中。