2011-01-12 1 views
1

사용자가 모델 객체에서 필드 집합을 업데이트 할 수있는 MVC 2 응용 프로그램에 양식이 있습니다. 이것은 모형 객체가 이미 존재하므로 완전히 업데이트 된 것입니다. 필수 필드가 입력되었습니다. 그러나 작은 필드 집합을 업데이트하려고 할 때 내 모델 개체에 TryUpdateModel을 호출하면 오류가 발생하고 내 modelstate에 이미 채워진 필수 필드를 기반으로하는 오류가 있습니다. 이하지 않는 몇 가지 이유가,MVC2 tryUpdateModel의 포함 속성이 포함되지 않은 필드에 대한 유효성 검사를 무시하지 않음

[HttpPost] 
public ActionResult Work(int id, FormCollection forms) 
{ 
    var lead = claimRepo.GetLeadByID(id); 
    if (lead == null) 
     return View("NotFound"); 
    if (TryUpdateModel(lead, "Lead")) {...} 
} 

심지어 명시 적으로 진술 해봤 그래서

TryUpdateModel(lead, "Lead", new string[] { "Date", "UserID", ...}) {...} 

처럼 업데이트 할 필드 그리고 그것은 계속 실패 : 여기

내 컨트롤러 코드 포함되지 않은 필드에 대한 유효성 검사를 무시하거나 잘못된 것을하고 있습니까?

감사합니다.

내가 문제를 발견

편집, 안 데이터베이스가 백업 된 때문에 속성이 원인이 무엇을 의미하는지 반환하는 getter와 setter를 추가, 메타 데이터에 필요로 표시 한 내 클래스의 속성을 가지고 TryUpdateModel을 전달해야하지만, 속성의 명시 적 포함이 내가 포함하지 않은 필드를 무시하지 않은 이유에 대해 궁금합니다.

또 다른 편집

나는 모든 데이터베이스가 명시 적으로 필드는 여전히 양식에서 누락 필드에 modelstate 오류가 발생 업데이트되고있는 상태하려고 필수 필드 및 백업으로뿐만 아니라 사용자 모델을 가지고 있지만 있습니다 업데이트되는 db의 모델 객체에 채워집니다.

답변

0

들어오는 데이터의 유효성을 검사하기 위해 기본 동작이 변경된 경우, asp.net mvc1 만 지원한다고 생각하는 것에서 확신 할 수 없습니다. 어쨌든 asp.net mvc2에서 변경되었습니다. [유효성 검사 (false)] 부분 데이터가 통과하도록 허용하고 수동으로 유효성 검사를 수행합니다. 필요한 경우 ViewModel을 사용하고 뷰 모델의 모든 필드의 유효성을 검사하여 두 번째 옵션으로 사용할 수 있습니다. 유용한 링크 : partial validation

관련 문제