Ich möchte die Variablen itemId und entityModel an ActionResult CreateNote senden:
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
mit diesem Javascript:
Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Die gesendete URL lautet jedoch
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
Ich will etwas senden
localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44
Wie kann ich verhindern, dass Url.Action das & vor die zweite Variable stellt, die ich senden möchte?
c#
javascript
jquery
url.action
Niek de Klein
quelle
quelle
&
das nicht in Ordnung ist?Antworten:
Ich habe gestern nicht bemerkt, dass du
&
gedacht hast , dass der SO-Editor das geändert hat. Versuchen Sie, IhrUrl.Action()
in ein@Html.Raw()
zu wickeln , um den Encode von & zu verhindern.Oder alternativ nur
Url.Action()
das Controller- / Aktionsbit und die beiden Parameter als Post-Daten anstatt direkt auf der URL übergeben, sollte jQuery die & 's auf diese Weise für Sie aussortieren.quelle
Ich denke, Ihr Problem ist mit
Model.meta.PostAction
- ist diese Eigenschaft einestring
?Wenn ja, dann würde ich vermuten, dass Sie es der Seite hinzufügen mit:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
Beide codieren diese Zeichenfolge automatisch für Sie.
Um dies zu beheben, verwenden Sie entweder
@Html.Raw()
/<%=
(beide codieren nicht) oder machen Sie diePostAction
Eigenschaft zu einer EigenschaftIHtmlString
, die weiß, dass sie bereits codiert wurde:quelle