Domanda

come posso limitare il numero di caratteri da visualizzare per html.encode?

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

errore: indice e lunghezza devono fare riferimento a una posizione all'interno della stringa.

È stato utile?

Soluzione

Devi controllare che la lunghezza delle stringhe sia maggiore di 30, altrimenti stai specificando una lunghezza che cadrà dalla fine della stringa ... (Ho anche cambiato il tuo indice iniziale su 0 supponendo che non intendessi per tralasciare il primo carattere)

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

Altri suggerimenti

Puoi anche fare qualcosa del genere

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

per salvare alcuni byte

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

Se si desidera verificare la presenza di null, procedere come segue:

<%= Html.Encode(
item.LastName == null ? string.Empty :
item.LastName.Substring(0, item.LastName.Length > 30 ? 30 : item.LastName.Length))%>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top