[英]Url.Action puts an & in my url, how can I solve this?
我想將變量itemId和EntityModel發送到ActionResult CreateNote:
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
與此JavaScript:
Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
但是,正在發送的網址是
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
我想發送
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
如何防止Url.Action將&放在要發送的第二個變量前面?
昨天我沒有注意到您有&
我以為那是SO編輯器改變了這一點。 嘗試將Url.Action()
包裝在@Html.Raw()
以防止&編碼。
或者,也可以僅使用Url.Action()
控制器/操作位並將這兩個參數作為發布數據而不是直接傳遞到url上,jQuery應該以此方式為您整理&。
我認為您的問題出在Model.meta.PostAction
該屬性是string
嗎?
如果是這樣,那么我的猜測是您正在使用以下任一方法將其添加到頁面中:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
兩者都會自動為您編碼該字符串。
要解決此問題,請使用@Html.Raw()
/ <%=
(兩者均不進行編碼),或將PostAction
屬性IHtmlString
為知道已被編碼的IHtmlString
:
string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Model.meta.PostAction = new HtmlString(actionUrl);
在您的JS上嘗試
myUrl = myUrl.replace(/&/g, "&");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.