2009-11-26 30 views
0

如何限制顯示html.encode的字符數?html.encode上的子字符串

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

錯誤:索引和長度必須引用字符串中的位置。

+0

我們不是自動語法熒光筆,以確定哪種語言是 – kolypto

回答

6

你需要檢查字符串的長度是否大於30,否則你會指定一個長度,這將會降低字符串的末尾......(我也已經將你的開始索引改爲0,假設你沒有意思是離開了第一個字符)

<%= Html.Encode(item.LastName.Substring(0, 
        item.LastName.Length > 30 ? 30 : item.LastName.Length))%> 
+0

你缺少一個右括號。 ;) –

+0

謝謝,修正.. –

2
<%= Html.Encode(item.LastName.Substring(0, item.LastName.Length > 30 ? 30 : item.LastName.Length))%> 

如果你想檢查空,而是執行此操作:

<%= Html.Encode(
item.LastName == null ? string.Empty : 
item.LastName.Substring(0, item.LastName.Length > 30 ? 30 : item.LastName.Length))%> 
+0

索引是基於0的,而.Length是基於1的。 > =在這種情況下不起作用。改用>代替。 –

+0

啊,是的。謝謝。固定。 –

+0

謝謝各位回覆。請原諒我,但如果字符串爲空呢? – dmarkez

4

你也可以做類似

<%= Html.Encode(item.LastName.Substring(0, Math.Min(item.LastName.Length, 30)) %> 

節省一些字節