하나의 Ajax (jQuery) 호출로 여러 양식을 ASP 애플리케이션에 보내려고합니다. ASP가를 automaticly 생성되도록백엔드 ASP.NET MVC (MEF)에 여러 양식 게시/바인딩
이Key : Value
Form1 : All serialized form elements for Form1
Form2 : All serialized form elements for Form2
는 일반적으로 우리는 다음과 같은 방법을 사용 : 우리이 (가)으로 Request.Form 속성에 다음을받는 서버에서
var formContainer = {
Form1 : form1.serialize(),
Form2 : form2.serialize()
}
$.ajax({
type: "POST",
url: '@Url.Action("CreateModel", "Controller")',
data: formContainer,
success: function (result) { }
});
:
우리는 다음과 같은 jQuery 코드를 사용 올바른 속성 값을 가진 객체 :
public ActionResult CreateModel(ClassForForm1 obj)
그러나 두 개의 f orms가 함께 보내지는 모델 바인더는 클래스를 바인딩하고 빌드 할 수 없습니다. 이 작업을 위해 우리는 모델 작성자가 Request.Form [ "Form1"]의 값을 사용하기를 원합니다.
우리는 extern 라이브러리 (DevExpress, 위의 자체 구현을 작성했습니다)를 사용하기 때문에 사용자 정의 모델 바인더를 사용할 수 없습니다.
우리는 MEF 프레임 워크를 사용하여 기능을 추가합니다 (이 기능은보기에 양식으로 추가됩니다). 이런 이유로 우리는 백엔드에 너무 기대되는 것을 모릅니다. 따라서 래퍼 ViewModel을 작성하는 것은 허용되지 않습니다.
다른 양식 데이터를 처리하는 기능은 다른 모듈에서 처리됩니다.
모든 솔루션을 환영합니다!
미리 감사드립니다.
"이 작업을 위해 우리는 모델 작성자가 Request.Form ["Form1 "]의 값을 사용하기를 원합니다." 기본적으로 Form2 값을 해당 요청에 대해 무시하고 싶습니까? 또는 요청에서 각 양식 **에 대해 CreateModel을 호출하려고합니다. 3 개의 양식이 전송되면 CreateModel이 각 양식에 대해 한 번 세 번 수행됩니다. – AaronLS
예, 우리는 당신이 말한 것처럼 Request.Form [ "Form2"]의 값을 "무시"하고 싶습니다. –
Custom Modelbinder에서 Request.Form 값을 변경하려고 시도했지만 IUnvalidatedprovider에서 값을 읽는 중입니다. 이 페이지의 마지막 코드 (정적 함수에서) : http://blogs.taiga.nl/martijn/2011/09/29/custom-model-binders-and-request-validation/. 하지만 그 값을 변경하는 방법을 찾지 못했습니다. 이것은 내가 나 자신을 발견 한 것이며, 다른 솔루션은 환영 받는다. :) –