Je veux 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 placer le & devant la deuxième variable que je veux envoyer?
c#
javascript
jquery
url.action
Niek de Klein
la source
la source
&
n'est pas correct?Réponses:
Je n'ai pas remarqué hier que vous aviez
&
pensé que c'était l'éditeur SO qui avait changé cela. Essayez d'envelopper votreUrl.Action()
dans un@Html.Raw()
pour éviter l'encodage de &.Ou bien seulement
Url.Action()
le bit contrôleur / action et passer 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.la source
Je pense que votre problème est
Model.meta.PostAction
- est-ce que cette propriété eststring
?Si tel est le cas, je suppose que vous l'ajoutez à la page avec soit:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
Les deux encodent automatiquement cette chaîne pour vous.
Pour résoudre ce problème, utilisez
@Html.Raw()
/<%=
(qui ne codent pas tous les deux) ou faites de laPostAction
propriété unIHtmlString
qui sait qu'elle a déjà été codée:la source