Url-адрес.Действие помещает и в мой адрес, как я могу решить это?
Я хочу отправить переменные 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.Действие, чтобы поместить & перед второй переменной, которую я хочу отправить?
3 ответа:
Я не заметила вчера, что у тебя
&
Я думал, что это так редактор изменил это. Попробуйте обернуть вашUrl.Action()
на@Html.Raw()
для предотвращения Кодирование от.или только
Url.Action()
бит контроллера / действия и передать два параметра в качестве данных post, а не непосредственно на url, jQuery должен отсортировать &'s для вас таким образом.
Я думаю, что ваша проблема с
Model.meta.PostAction
- это свойство astring
?если так, то я предполагаю, что вы добавляете его на страницу с:
- бритвы:
@Model.meta.PostAction
- ASP view engine:
<%: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);