2011-07-28 6 views
4

도와주세요.면도기 : @ Html.HiddenFor() 유효성 검사를 비활성화해야합니다.

내가 클래스가 : 뷰에서

public class Product 
{ 
    ... 

    // NOT REQUIRED! 
    public virtual Category Category{ get; set; } 
} 

그러나시는 내가

@Html.HiddenFor(model => model.Category.Id), or 
@Html.Hidden("model.Category.Id", model => model.Category.Id) 

가 면도칼이 유효성 검사 속성을 추가 만듭니다.

  1. 어떻게 끄겠습니까? (모델에서보기)
  2. 속성에 속성 [필수]가있는 경우 유효성 검사 이벤트를 해제하는 방법?

나는 이것이 면도 문제가 아니라는 것을 알았습니다. 그것은 MVC 어딘가에 있습니다. "Category.Id"value = ""를 서버에 전달하더라도 TryModelUpdate()가 실패합니다. "Category.Id"를 설정해야하지만 내 모델에는 필요하지 않습니다.

왜 그렇게 되나요 ??

답변

0

를 셋업처럼 숨겨진 : 나는 그것을 확인하지 않을 수 있도록, 특정 모델 검증은 UI 특정한 생각, 그리고

@Html.Hidden("CategoryIdHidden", model => model.Category.Id) 

그리고 게시 숨겨진 값이 물건을 결합 모델에서 분리 처리 ... 카테고리 ID

또는 숨김 기본값 인 "0"을 제공하십시오. category.ID가 int 유형이므로 null 인 경우 ""값은 아마도 올바르게 평가되지 않습니다. 따라서 오류가 발생합니다.

HTH.

관련 문제