source

Url.Action이 제 URL에 &을 넣었는데 어떻게 해결해야 하나요?

lovecheck 2023. 8. 20. 11:58
반응형

Url.Action이 제 URL에 &을 넣었는데 어떻게 해결해야 하나요?

변수 itemId 및 entityModel을 ActionResultCreateNotes로 보내고 싶습니다.

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을 방지할 수 있습니까?제가 보내고 싶은 두 번째 변수 앞에 &을 붙이는 동작?

어제 당신이 가지고 있는 것을 눈치채지 못했습니다.&저는 SO 편집자가 그것을 바꾼 것이라고 생각했습니다.포장해 보세요.Url.Action()순식간에@Html.Raw()의 인코딩을 방지합니다.

또는 오직Url.Action()컨트롤러/액션 비트를 사용하여 두 매개 변수를 URL에 직접 전달하는 것이 아니라 포스트 데이터로 전달합니다. jQuery는 &을 그런 식으로 정리해야 합니다.

제 생각에 당신의 문제는Model.meta.PostAction그 재산은 a입니까?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);

언급URL : https://stackoverflow.com/questions/8711521/url-action-puts-an-amp-in-my-url-how-can-i-solve-this

반응형