这是一个非常简单的问题。
我有一个 Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何将字符串从 item.Text 减少到特定长度?我希望你可以SubString
直接在 item.Text 上做某事。
如果你想知道我为什么要这个,那是因为字符串很长,我只想在索引视图等中显示一点。
这是一个非常简单的问题。
我有一个 Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何将字符串从 item.Text 减少到特定长度?我希望你可以SubString
直接在 item.Text 上做某事。
如果你想知道我为什么要这个,那是因为字符串很长,我只想在索引视图等中显示一点。
我需要同样的东西,并用以下几行解决了这个问题。
<td>
@{
string Explanation = item.Explanation;
if (Explanation.Length > 10)
{
Explanation = Explanation.Substring(0, 10);
}
}
@Explanation
</td>
如果你的字符串总是大于 10,你可以排除:
if (Explanation.Length > 10)
{
Explanation = Explanation.Substring(0, 10);
}
并直接写:
string Explanation = item.Explanation.Substring(0, 10);
此外,我建议添加..
大于您给出的限制的字符串。
有3种可能性可以考虑:
您可以在视图模型中添加一个属性,该属性会截断字符串并显示它:
// View model
public string TextShort { get { return Text.Substring(0, 10); } }
// View
@Html.DisplayFor(modelItem => item.TextShort)
改变
@Html.DisplayFor(modelItem => item.Text)
到
@Html.Display(item.Text.Length > 10 ? item.Text.Substring(0,10) : item.Text)
编辑:新答案
关于什么
@{
modelItem.ShortText= model.Text.Substring(0, ....);
}
@Html.DisplayFor(modelItem => item.ShortText)
DisplayFor 的原型是:
public static MvcHtmlString DisplayFor<TModel, TValue>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression
)
我认为 modelItem 是动态的,因此应该可以向视图模型添加新属性。