Csharp/C#教程:MVC Razor需要获得Substring分享


MVC Razor需要获得Substring

我的观点中有以下内容

@Html.DisplayFor(modelItem => item.FirstName) 

我需要获得免费精选名字大全的第一个首字母。

我试过了

  @Html.DisplayFor(modelItem => item.FirstName).Substring(1,1) 

但它似乎没有用。 我收到以下错误:..’System.Web.Mvc.MvcHtmlString’不包含’Substring’的定义,没有扩展名

如果您只想显示item.FirstName的第一个字符,为什么不这样做:

 @Html.DisplayFor(modelItem => item.FirstName.Substring(1,1)) 

你有它在右括号的错误的一面。

您可以在视图中实现如下:

 @Html.DisplayFor(modelItem => modelItem.FirstName).ToString().Substring(0,5) 

您应该在ViewModel上放置一个属性,而不是尝试在视图代码中获取它。 视图唯一的责任是显示模型给它的内容,它不应该从模型中创建新数据。

我可能会建议视图不适合这样做。 您可能应该有一个单独的模型属性FirstInitial ,它包含逻辑。 您的视图应该只显示这个。

  public class Person { public string FirstName { get; set; } public string FirstInitial { get { return FirstName != null ? FirstName.Substring(0,1) : ""; } } ... } @Html.DisplayFor( modelItem => modelItem.FirstInitial ) 

您可以使用自定义扩展方法,如下所示:

 ///  /// Returns only the first n characters of a String. ///  ///  ///  ///  ///  public static string TruncateString(this string str, int start, int maxLength) { return str.Substring(start, Math.Min(str.Length, maxLength)); } 

希望这可以帮助…

这对我有用(没有帮手):

上述就是C#学习教程:MVC Razor需要获得Substring分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 @item.Description.ToString().Substring(0, (item.Description.Length > 10) ? 10 : item.Description.Length ) 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/957131.html

(0)
上一篇 2021年11月21日
下一篇 2021年11月21日

精彩推荐