c# - tag - Url.Action coloca un & amp; en mi url, ¿cómo puedo resolver esto?
url action send values (3)
Deseo enviar las variables itemId y entityModel a 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 coloque & en frente de la segunda variable que deseo enviar?
Creo que su problema es con Model.meta.PostAction
- ¿esa propiedad es una string
?
Si es así, supongo que lo está agregando a la página con:
- Razor:
@Model.meta.PostAction
- Motor de vista ASP:
<%:Model.meta.PostAction%>
Ambos codifican automáticamente esa cadena por ti.
Para solucionarlo, utilice @Html.Raw()
/ <%=
(ninguno de los cuales codifica) o establezca la propiedad IHtmlString
en IHtmlString
que sepa que ya se ha codificado:
string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Model.meta.PostAction = new HtmlString(actionUrl);
No me di cuenta ayer de que tenías &
Pensé que ese era el editor de SO que había cambiado eso. Intente Url.Action()
su Url.Action()
en @Html.Raw()
para evitar el Codificación de &.
O, alternativamente, solo Url.Action()
el bit de controlador / acción y pasa los dos parámetros como datos de publicación en lugar de pasar directamente a la url, jQuery debe ordenar los & ''para usted de esa manera.
Prueba esto en tu JS
myUrl = myUrl.replace(/&/g, "&");