这是一个非常简单的问题。
我有一个Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何将item.Text中的字符串剪切为特定长度?我希望你能直接在item.Text上做SubString
或其他东西。
如果你想知道为什么我想要这个,那是因为字符串非常长,我只想在索引视图等中显示它。
答案 0 :(得分:4)
有三种可能性可以考虑:
答案 1 :(得分:3)
我需要同样的东西并用以下几行解决了这个问题。
<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);
另外,我建议为大于您提供的限制的字符串添加..
。
答案 2 :(得分:2)
您可以在视图模型上添加一个属性来截断字符串并显示该字符串:
// View model
public string TextShort { get { return Text.Substring(0, 10); } }
// View
@Html.DisplayFor(modelItem => item.TextShort)
答案 3 :(得分:2)
更改
@Html.DisplayFor(modelItem => item.Text)
到
@Html.Display(item.Text.Length > 10 ? item.Text.Substring(0,10) : item.Text)
答案 4 :(得分:0)
已编辑:新答案
怎么样
@{
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是动态的,因此应该可以向视图模型添加新属性。