Comment encoder les paramètres dans l'ASP .NET MVC

J'ai le code suivant dans mon point de vue:

<%= Html.ActionLink(
           "View item", 
           "Index", 
            "Items", 
            new 
            { 
                itemName = Model.ItemName 
            }, 
            null) %>

J'ai un problème lorsque le nom de l'élément contient un dièse (#) ou le symbole de pourcentage (%).

  • Lorsque le nom de l'élément est "name#with#sharp#", le contrôleur ne reçoit que la première partie du nom jusqu'à la première sharp (uniquement reçoit "name").

  • Lorsque le nom de l'élément est "name%with%percent" j'obtiens une erreur: erreur HTTP 400 - Bad request.

Je ne sais pas si c'est un problème avec l'encodage d'URL, parce qu'il fonctionne avec d'autres conflictuelle de caractères tels que:

;
=
+
,
~
[blank]

Savez-vous comment pourrais-je résoudre ce problème?

Merci d'avance.

Quel url arriver généré? Quand j'essaie votre exemple ci-dessus avec les symboles"%", j'obtiens ceci: http://localhost/AspNetMvc2/Items?itemName=name%25with%25percent, et aucune erreur. Aussi, l'exemple de la # symbole de ce produit: http://localhost:55386/Items?itemName=name%23with%23sharp%23

OriginalL'auteur Daniel Peñalba | 2011-05-05