2009-11-26 2 views
0

Comment puis-je limiter le nombre de caractères à afficher pour html.encode?sous-chaîne sur html.encode

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

erreur: index et la longueur doit se référer à un emplacement dans la chaîne.

+0

Nous sommes surligneurs pas de syntaxe automatique pour déterminer quelle langue est-il – kolypto

Répondre

6

Vous devez vérifier la longueur des chaînes est supérieure à 30, sinon vous spécifiez une longueur qui tombera à la fin de la chaîne ... (J'ai également changé votre index de départ à 0 en supposant que vous n'avez pas dire de quitter le premier caractère)

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

Vous manque une parenthèse fermante. ;) –

+0

Merci, corrigé .. –

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

Si vous voulez vérifier null, faites ceci:

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

Les index sont basés sur 0, tandis que .Length est basé sur 1. > = ne fonctionnera pas dans ce cas. Utilisez> à la place. –

+0

Ah, oui. Je vous remercie. Fixé. –

+0

Merci les gens pour toutes les réponses. Pardonnez-moi mais que faire si la chaîne est nulle? – dmarkez

4

vous pouvez aussi faire quelque chose comme

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

pour sauver quelques octets

Questions connexes