Quero enviar as variáveis itemId e entityModel para ActionResult CreateNote:
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
com este javascript:
Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
No entanto, o url que está sendo enviado é
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
eu quero enviar
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
Como posso evitar que Url.Action coloque o & na frente da segunda variável que desejo enviar?
c#
javascript
jquery
url.action
Niek de Klein
fonte
fonte
&
não está certo?Respostas:
Não notei ontem que você tinha
&
, pensei que o editor do SO tinha mudado isso. Tente embrulhar seuUrl.Action()
em um@Html.Raw()
para evitar a codificação de &.Ou, alternativamente, apenas
Url.Action()
o controlador / bit de ação e passar os dois parâmetros como dados de postagem em vez de diretamente na url, o jQuery deve resolver os & 's para você dessa forma.fonte
Acho que seu problema é com
Model.meta.PostAction
- essa propriedade é umastring
?Se for assim, meu palpite é que você está adicionando à página com:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
Ambos codificam automaticamente essa string para você.
Para corrigi-lo, use
@Html.Raw()
/<%=
(ambos não codificam) ou torne aPostAction
propriedade umaIHtmlString
que saiba que já foi codificada:fonte