변수 itemId 및 entityModel을 ActionResult CreateNote에 보내고 싶습니다.
public ActionResult CreateNote(
[ModelBinder(typeof(Models.JsonModelBinder))]
NoteModel Model, string cmd, long? itemId, string modelEntity)
이 자바 스크립트로 :
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을 어떻게 방지 할 수 있습니까?
답변
나는 그것이 &
SO 편집자라고 생각했다는 것을 어제 눈치 채지 못했습니다 . 당신의 포장 시도 Url.Action()
에서 a를@Html.Raw()
&의 인코딩을 방지 할 수 있습니다.
또는 Url.Action()
컨트롤러 / 액션 비트 만 url에 직접 전달하지 않고 두 매개 변수를 포스트 데이터로 전달하면 jQuery는 &를 그런 방식으로 정렬해야합니다.
답변
나는 당신의 문제가 Model.meta.PostAction
-그 속성이string
입니까?
그렇다면 내 추측은 다음 중 하나를 사용하여 페이지에 추가하는 것입니다.
- 면도칼:
@Model.meta.PostAction
- ASP보기 엔진 :
<%: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);