如何限制为html.encode显示的字符数?
<%= Html.Encode(item.LastName.Substring(1,30))%>
错误:索引和长度必须引用字符串中的位置。
答案 0 :(得分:6)
您需要检查字符串长度是否大于30,否则您指定的长度将从字符串的末尾开始...(我也将您的起始索引更改为0,假设您不是遗漏第一个字符)
<%= Html.Encode(item.LastName.Substring(0,
item.LastName.Length > 30 ? 30 : item.LastName.Length))%>
答案 1 :(得分:4)
您也可以执行类似
的操作<%= Html.Encode(item.LastName.Substring(0, Math.Min(item.LastName.Length, 30)) %>
保存一些字节
答案 2 :(得分:2)
<%= Html.Encode(item.LastName.Substring(0, item.LastName.Length > 30 ? 30 : item.LastName.Length))%>
如果要检查null,请改为:
<%= Html.Encode(
item.LastName == null ? string.Empty :
item.LastName.Substring(0, item.LastName.Length > 30 ? 30 : item.LastName.Length))%>