내보기에서 아약스 호출을 할 때 모델 바인딩을 유지하고 싶습니다. 나는 통화를 할 수 jquery ajax를 사용하고, 그리고 단지 예 - 이것은 내가 아약스에서 호출 할 내 컨트롤러 방법입니다 : 당신이 볼 수 있듯이,이 방법은 Model Binding에 의존복잡한 유형이 관련 될 때 Ajax 및 모델 바인딩을 어떻게 다루는가?
public ActionResult Create(Person personToCreate) {
//Create person here
}
. 이것은 메소드를 훨씬 깔끔하게 만듭니다 ... 그러나 이것은 아약스가 호출 할 때 DB에 nullable이 아닌 모든 변수를 제공해야한다는 것을 의미합니다. 내가 가지고있는 경우
그래서, 테이블 변수가 Person
전화 :
firstName varchar(25) not-null
lastName varchar(25) not-null
myPet int not-null <-- This is a foreign key
을 다음과 유사 할 것입니다 만든 엔티티 프레임 워크 클래스, Person
:
public class Person {
public string firstName { get; set; }
public string lastName { get; set; }
public Pet myPet { get; set; }
}
(DB에 지정된대로) null 일 수 있습니다. 즉, ajax 호출은 string firstName
, string lastName
, Pet myPet
을 제공해야합니다. 그러나 자바 스크립트는 (내가 아는)
이
는 "아첨을 만들기 myPet가 DB에 null이 될 수 있도록 허용 즉, 애완 동물 개체를 필요로하지 않는 사람을 대표하는 "클래스 ...
:
public class SimplePerson {
public string firstName { get; set; }
public string lastName { get; set; }
public string myPetName { get; set; }
}
첫 번째 옵션에 대한 문제는
... 그것이 안 일을 수 있기 때문에 그것에 대해 잘못 DB ... 확실히 뭔가를 수정해야하는 이상한 보인다 두 번째의 문제입니다 옵션은 내가 많은 수업을 가지고 있으며, 이것을 피하기 위해 각각을위한 중복 클래스를 작성하는 것만 큼 ... 30 클래스가 있다면 그것은 허용하기 위해서 만들어야 할 30 개의 중복 클래스가 될 것입니다. 모델 바인딩.
누구나 더 나은 옵션을 생각하거나 왜 한 옵션이 다른 옵션보다 나은지 추론 할 수 있습니까?
"보기 모델 클래스를 실제 모델 클래스와 분리하십시오"그래서 각 클래스의 복제본을 단순화해야한다고 말하고 있습니까? – Matt
그래, 양식 안팎으로의 매핑을위한 클래스를 어리 석다. –