这是一个非常简单的问题。(Razor)Html.Helper中的字符串长度?
我有一个Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何,我从item.Text字符串减少到一个特定的长度?我希望你可以做一个SubString
或东西直接在item.Text。
如果youre想知道为什么我想这一点,因为它的字符串是很长,我只是想表明一点它像索引视图等
这是一个非常简单的问题。(Razor)Html.Helper中的字符串长度?
我有一个Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何,我从item.Text字符串减少到一个特定的长度?我希望你可以做一个SubString
或东西直接在item.Text。
如果youre想知道为什么我想这一点,因为它的字符串是很长,我只是想表明一点它像索引视图等
你可以只添加属性上,做的字符串截断您的视图模型,并显示代替:
// View model
public string TextShort { get { return Text.Substring(0, 10); } }
// View
@Html.DisplayFor(modelItem => item.TextShort)
真棒解决方案。因为我有其他属性需要在视图中以不同的方式进行操作,这可以使其变得简单。没想到那个。谢谢。 –
有迹象表明,可以考虑3种可能性:
良好的分析。一如既往:)谢谢。 –
编辑:新建答案
怎么样
@{
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是一个动态的我认为,所以应该可以添加一个新的属性到视图模型。
-1这不起作用 - 该参数是通过DisplayFor方法来识别要显示的成员的表达式 - 它与输出无关 –
ahh ok谢谢 –
编辑并呈现另一个理念。 –
我需要同样的事情,解决了以下行的情况。
<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);
此外,我建议对超过限制的字符串添加..
你给。
变化
@Html.DisplayFor(modelItem => item.Text)
到
@Html.Display(item.Text.Length > 10 ? item.Text.Substring(0,10) : item.Text)
还没有测试过,但这可能是我今天使用的解决方案。 –
你可能想将它发送到视图之前照顾那个。 –