Saya ingin mengirim variabel itemId dan entityModel ke ActionResult CreateNote:
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
dengan javascript ini:
Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Namun, url yang sedang dikirim adalah
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
saya ingin mengirim
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
Bagaimana cara mencegah Url.Action meletakkan & di depan variabel kedua yang ingin saya kirim?
c#
javascript
jquery
url.action
Niek de Klein
sumber
sumber
&
tidak baik?Jawaban:
Saya tidak memperhatikan kemarin bahwa Anda memiliki
&
saya pikir itu adalah editor SO telah mengubahnya. Cobalah membungkus AndaUrl.Action()
dengan a@Html.Raw()
untuk mencegah Penyandian &.Atau alternatifnya hanya
Url.Action()
controller / action bit dan meneruskan dua parameter sebagai data posting daripada langsung di url, jQuery harus memilah & untuk Anda seperti itu.sumber
Saya pikir masalah Anda adalah
Model.meta.PostAction
- apakah properti itu astring
?Jika demikian, tebakan saya adalah Anda menambahkannya ke halaman dengan:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
Keduanya secara otomatis menyandikan string itu untuk Anda.
Untuk memperbaikinya gunakan
@Html.Raw()
/<%=
(keduanya tidak dienkode ) atau buatPostAction
propertiIHtmlString
yang tahu bahwa itu sudah dienkode:string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity}); Model.meta.PostAction = new HtmlString(actionUrl);
sumber