从内容MVC 5 ASP.NET获取前100个字符

时间:2015-06-20 14:54:26

标签: c# asp.net asp.net-mvc razor

我首先使用带有实体框架6.1代码的asp MVC 5。 我对这些文章提出了看法。

我想只将内容中的前100个字符放在索引视图中。我该怎么做 ?

<td>
   @Html.DisplayFor(modelItem => item.Content)
</td>

2 个答案:

答案 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中。