2009-12-10 6 views
4

В последней версии MVC содержатся некоторые методы расширения html-помощника типа, например CheckBoxFor() и LabelFor(), кто-нибудь знает, есть ли какая-то особая причина, почему они не реализовали CheckBoxFor()?Почему в .NET MVC нет метода Html.CheckBoxFor()?

+0

И я также приветствую, почему, где нет метода ModelState.AddModelErrorFor (выражение, msg), чтобы добавить некоторые ошибки проверки высокого уровня в состояние модели в контроллере. – PanJanek

ответ

2

CheckBoxFor() не был завершен во время Beta. Он должен быть доступен в следующем предварительном выпуске. Что касается перегрузки AddModelErrorFor(), в ней никогда не было необходимости. Ошибки поставляются связующими и валидаторами, которые используют строки, а не выражения. Если вы можете предоставить сценарий, в котором использование выражения обеспечит преимущество над простое использование строк, мы можем открыть рабочий элемент для этого запроса.

+0

Ну, я не уверен, но иногда добавлять некоторые ошибки в ModelState в действие контроллера иногда бывает удобно, и использование AddModelErrorFor() для этого было бы лучше, чем использование «магических строк». Но если я правильно понимаю, лучше всего обрабатывать все изменения состояния модели в валидаторах и связующих? – PanJanek

+0

Вы можете сделать изменения состояния модели в действии контроллера, если хотите; в этом нет ничего неправильного. Но поскольку внутри действия контроллера вы потеряли некоторый контекст относительно привязки модели, вы не можете вообще перейти от выражения к строке, эквивалентной этому выражению. Например, следует ли foo => foo.Bar перевести как «Bar» или «foo.Bar»? Это может стать неоднозначным. – Levi

Смежные вопросы