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, "&");