我是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)


我的问题是这张图片:
c# - 如何在MVC中定义@ Html.DisplayFor的最大长度?-LMLPHP

最佳答案

您基本上需要对字符串类型的属性做一个子字符串,并指定所需的字符数。您可能会考虑创建扩展方法来做到这一点。

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/

10-11 01:18