99 votes

Url.Action met un & dans mon URL, comment puis-je résoudre ce problème ?

Je souhaite envoyer les variables itemId et entityModel à ActionResult CreateNote :

 public ActionResult CreateNote(
        [ModelBinder(typeof(Models.JsonModelBinder))]
        NoteModel Model, string cmd, long? itemId, string modelEntity)

avec ce javascript :

 Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});

Cependant, l'URL envoyée est

 localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44     

je veux envoyer

 localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44

Comment puis-je empêcher Url.Action de mettre le & devant la deuxième variable que je veux envoyer ?

139voto

K. Bob Points 938

Je n'ai pas remarqué hier que vous aviez & Je pensais que c'était l'éditeur de SO qui avait changé ça. Essayez d'envelopper votre Url.Action() dans un @Html.Raw() pour empêcher l'encodage de &.

Ou bien seulement Url.Action() le bit de contrôleur/action et transmettre les deux paramètres en tant que données post plutôt que directement sur l'url, jQuery devrait trier les & pour vous de cette façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X