Quiero enviar las variables itemId y entityModel al ActionResult CreateNote:
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
con este javascript:
Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Sin embargo, la URL que se envía es
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
Quiero enviar
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
¿Cómo puedo evitar que Url.Action ponga & delante de la segunda variable que quiero enviar?
c#
javascript
jquery
url.action
Niek de Klein
fuente
fuente
&
no está bien?Respuestas:
Ayer no me di cuenta de que había
&
pensado que era el editor de SO lo había cambiado. Intente envolver suUrl.Action()
en un@Html.Raw()
para evitar el código de &.O, alternativamente, solo
Url.Action()
el controlador / bit de acción y pasar los dos parámetros como datos de publicación en lugar de directamente en la URL, jQuery debería ordenar los & 's de esa manera.fuente
Creo que tu problema es
Model.meta.PostAction
: ¿esa propiedad esstring
?Si es así, supongo que lo vas a agregar a la página con:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
Ambos codifican automáticamente esa cadena por ti.
Para solucionarlo, use
@Html.Raw()
/<%=
(ambos no codifican) o haga que laPostAction
propiedadIHtmlString
sepa que ya ha sido codificada:string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity}); Model.meta.PostAction = new HtmlString(actionUrl);
fuente