[英]How to define maxlength of @Html.DisplayFor in MVC?
您基本上需要对字符串类型的属性做一个子字符串,并指定所需的字符数。 您可能会考虑创建扩展方法来做到这一点。
public static class StringExtensions
{
public static string ToSafeSubString(this string value, int count)
{
return value != null && value.Length > count ?
value.Substring(0, count) : value;
}
}
在剃刀视图中,您可以像这样称呼它
@for (var i = 0; i < Model.Count; i++)
{
var descTrimmed= Model[i].Description.ToSafeSubString(10);
@Html.DisplayFor(f => descTrimmed)
}
或者,如果您的索引页具有视图模型,则在将域实体映射到视图模型列表时,可以在string属性上调用扩展方法。
public ActionResult Index()
{
var userList= db.Users.Select(s=> new UserViewModel {
UserName =s.UserName,
Description=s.Description.ToSafeSubString(10) })
.ToList();
return View(userList);
}
编辑时,可以使用maxlength
属性限制文本:
@Html.TextAreaFor(model => model.Description, new { @class = "form-control", @maxlength = "20" })
显示时,可以使用Substring()
方法限制文本,但是必须使用变量存储结果,因为DisplayFor
无法对方法结果进行操作:
string desc = Model[i].Description.Substring(0, 20);
@Html.DisplayFor(x => desc)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.