2009-12-10 2 views
4

최신 MVC 릴리스에는 CheckBoxFor() 및 LabelFor()와 같은 몇 가지 유형의 안전한 html 도우미 확장 메서드가 포함되어 있으므로 CheckBoxFor()가 구현되지 않은 특별한 이유가 있는지 알 수 있습니까?.Net MVC에서 Html.CheckBoxFor() 메서드가없는 이유는 무엇입니까?

+0

그리고 ModelState.AddModelErrorFor (expression, msg) 메서드가없는 곳에서 컨트롤러의 모델 상태에 대한 일부 높은 수준의 유효성 검사 오류를 추가하는 이유도 아쉬움이 있습니다. – PanJanek

답변

2

CheckBoxFor()가 베타 버전으로 완료되지 않았습니다. 다음 미리보기 릴리스에서 사용할 수 있어야합니다. AddModelErrorFor() 오버로드에 관해서는 아무 것도 필요 없습니다. 오류는 표현식이 아닌 문자열을 사용하는 바인더와 유효성 검사기에 의해 제공됩니다. 표현식을 사용하여 문자열을 단순히 사용하는 것보다 이점을 제공하는 시나리오를 제공 할 수 있다면이 요청에 대한 작업 항목을 열 수 있습니다.

+0

글쎄, 잘 모르겠지만 컨트롤러 동작에서 ModelState에 오류를 추가하는 것은 때로는 편리 할 수 ​​있으며 AddModelErrorFor()를 사용하면 "마법 문자열"을 사용하는 것보다 낫습니다. 그러나 올바로 이해한다면 가장 좋은 방법은 유효성 검사기와 바인더의 모든 모델 상태 변경을 처리하는 것입니다. – PanJanek

+0

원하는 경우 컨트롤러 동작에서 모델 상태를 변경할 수 있습니다. 본질적으로 잘못된 점은 없습니다. 그러나 컨트롤러 동작 내부에서 모델이 바인딩 된 방법에 대한 일부 컨텍스트를 잃어 버렸기 때문에 일반적으로 식에서 해당 식과 동일한 문자열로 되돌릴 수는 없습니다. 예를 들어, foo => foo.Bar는 "Bar"또는 "foo.Bar"로 변환해야합니까? 이것은 모호해질 수 있습니다. – Levi

관련 문제