ASP.Net MVC에서 컨트롤러에 게시 할 때 표준 QueryStrings와 반대로 JSON을 보낼 수 있기를 원합니다. 프론트 엔드 물건을 잘 (건물 내 JSON 개체를 제출) 일하고있다.ASP.Net MVC : 컨트롤러에 JSON 보내기
MVC 프레임 워크와 함께 제공되는 기본 ModelBinders가 지원하지 않는 컨트롤러 쪽에서 문제가 발생합니다.
나는이 문제를 해결하기 위해 매개 변수로 객체를 사용하는 필터를 적용하고 JSON 라이브러리를 사용하여이를 역 직렬화 한 다음 동작 매개 변수에 추가하는 방법을 살펴 보았습니다. 이상적이지 않습니다.
더 좋은 방법은 맞춤형 모델 바인더를 사용하는 것입니다. 내가 본 모든 것들은 당신이 단 하나의 모델을 가지고 있다고 가정하고 변수가 아닌 클래스가 될 것입니다. 여러 명이 있다면 고장이납니다.
누구에게도이 문제가 발생 했습니까? 내가 가진 한 가지 생각은 MVC가 FormCollection을 다루는 방법을 간단히 재정의하고 컬렉션에 값을 추가하고 MVC가 정상적인 방법으로 나머지 작업을 수행 할 수 있기를 바라는 것입니다. 그게 가능한지 아는 사람 있습니까?
중요한 문제는 내보기 모델이 이전과 다른 방식이 아니기 때문에 제 문제가 바인딩과 관련이 없다는 것입니다. 문제는 JSON Post에서 값을 가져 오는 것입니다.
내가 올바른 경우 MVC는 QueryString에서 값을 가져 와서 ModelBinding에 사용되는 양식 콜렉션에 넣습니다. 올바른 방법으로 FormCollection의 할당 방식을 변경해서는 안됩니까? 액션의
예 :
public ActionResult MyFirstAction(Int32 ID, PersonObject Person, ClassObject ClassDetails)
{
//etc
}
정상 바인딩 작품, JSON 중 하나가 작동하지 않을 수 없습니다 및 모델 바인더의 모든 예 않습니다. 지금까지의 가장 좋은 해결책은 객체를 사전으로 변환하고 각각의 param을 반복하고 그것을 일치시키는 것입니다. 이상적인 것 같지 않습니다.
투표하려면 아래 이유를 설명해주세요. – Damien
죄송합니다. 유감스럽게도 내가 좋아하는 스타를 클릭했을 때, 이미 upvoted 한 후에도 우연히 투표를 클릭했습니다 (그것이 5에서 3으로 변경된 이유입니다). 그리고 지금 제가 우연히 한 것을 되돌리려 고 시도한 직후, 질문이 수정되지 않는 한, 투표를 변경하기에는 너무 늦었다 고 말했습니다. 질문을 수정하면 기꺼이 내 표를 고칠 수 있습니다. – jamesaharvey
문제가 없습니다! 그것은 나에게도 많은 시간이 걸린다. – Damien