Chcę wysłać zmienne itemId i entityModel do ActionResult CreateNote:
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
z tym javascript:
Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Jednak wysyłany adres URL to
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
chcę wysłać
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
Jak mogę uniemożliwić Url.Action umieszczanie znaku & przed drugą zmienną, którą chcę wysłać?
c#
javascript
jquery
url.action
Niek de Klein
źródło
źródło
&
to nie jest w porządku?Odpowiedzi:
Nie zauważyłem wczoraj, że
&
myślałeś, że to redaktor SO to zmienił. Spróbuj zawinąć swójUrl.Action()
znak a,@Html.Raw()
aby zapobiec kodowaniu &.Lub alternatywnie tylko
Url.Action()
bit kontrolera / akcji i przekazanie tych dwóch parametrów jako danych pocztowych, a nie bezpośrednio na adres URL, jQuery powinien w ten sposób uporządkować &'s dla Ciebie.źródło
Myślę, że twój problem dotyczy
Model.meta.PostAction
- czy to jest nieruchomośćstring
?Jeśli tak, to przypuszczam, że dodajesz go do strony za pomocą:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
Oba automatycznie kodują ten ciąg.
Aby to naprawić, użyj
@Html.Raw()
/<%=
(oba nie kodują) lub spraw, abyPostAction
właściwośćIHtmlString
wiedziała, że została już zakodowana:string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity}); Model.meta.PostAction = new HtmlString(actionUrl);
źródło