変数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});
ただし、送信されるURLは
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が送信する2番目の変数の前に&を置くのを防ぐにはどうすればよいですか?
昨日、あなたが_&
_を持っていることに気づきませんでしたSOエディターがそれを変更したと思います。Url.Action()
を@Html.Raw()
&のエンコードを防止します。
または、代わりにUrl.Action()
コントローラー/アクションビットのみを使用し、2つのパラメーターを直接URLに送信するのではなく、投稿データとして渡します。jQueryは&をそのようにソートする必要があります。
あなたの問題はModel.meta.PostAction
にあると思います-そのプロパティはstring
ですか?
もしそうなら、私の推測では、あなたはそれを次のいずれかでページに追加しているでしょう:
@Model.meta.PostAction
<%:Model.meta.PostAction%>
どちらも自動的にその文字列をエンコードします。
これを修正するには、@Html.Raw()
/<%=
(両方ともエンコードしない)を使用するか、PostAction
プロパティを既にエンコードされていることを知っているIHtmlString
にします。
string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Model.meta.PostAction = new HtmlString(actionUrl);