这是一个非常简单的问题。
我有一个Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何将字符串从item.Text裁剪到特定长度?我希望您可以直接在item.Text上执行SubString
或类似操作。
如果您想知道我为什么这样做,那是因为字符串太长了,而我只想在索引视图等地方显示一部分内容。
这是一个非常简单的问题。
我有一个Html.helper:
@Html.DisplayFor(modelItem => item.Text)
如何将字符串从item.Text裁剪到特定长度?我希望您可以直接在item.Text上执行SubString
或类似操作。
如果您想知道我为什么这样做,那是因为字符串太长了,而我只想在索引视图等地方显示一部分内容。
我也有同样的需求,并使用下面的代码解决了这个问题。
<td>
@{
string Explanation = item.Explanation;
if (Explanation.Length > 10)
{
Explanation = Explanation.Substring(0, 10);
}
}
@Explanation
</td>
if (Explanation.Length > 10)
{
Explanation = Explanation.Substring(0, 10);
}
并直接编写:
string Explanation = item.Explanation.Substring(0, 10);
..
。以下有三种可能性可供考虑:
// View model
public string TextShort { get { return Text.Substring(0, 10); } }
// View
@Html.DisplayFor(modelItem => item.TextShort)
@Html.DisplayFor(modelItem => item.Text)
to
@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是动态的,因此应该可以向视图模型添加新属性。
DisplayFor
方法遍历以识别要显示的成员 - 它与输出无关。 - Andras Zoltan