html.encode上的子字符串

时间:2009-11-26 01:48:48

标签: c# substring

如何限制为html.encode显示的字符数?

<%= Html.Encode(item.LastName.Substring(1,30))%>

错误:索引和长度必须引用字符串中的位置。

3 个答案:

答案 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))%>