我是MVC的新手
我在创建视图中有textarea
,但最多只能使用nvarchar,但是在显示模式(索引页面)中所有这些字符显示给我,因此我想在Model的索引页面中定义字符显示的计数
public string Description { get; set; }
在
Create
控制器中@Html.TextAreaFor(model => model.Description, new { @class = "form-control" })
在
Index
控制器中@Html.DisplayFor(x => Model[i].Description)
我的问题是这张图片:
最佳答案
您基本上需要对字符串类型的属性做一个子字符串,并指定所需的字符数。您可能会考虑创建扩展方法来做到这一点。
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);
}
关于c# - 如何在MVC中定义@ Html.DisplayFor的最大长度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35109079/