Обрабатывать флажки со строго типизированными представлениями в Asp.net MVC - PullRequest
2 голосов
/ 14 апреля 2009

Что такое правильный способ обработки флажков с asp.net MVC и строго типизированными представлениями. У меня есть класс 'Bar', в котором есть член 'foo'. 'foo' - это тип 'byte'.

Теперь то, что я хотел бы сделать, это что-то вроде этого в контроллере:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Page( Bar bar ) 
{
   if (ModelState.IsValid)
   {    
      SaveChanges(bar);
 ...

И как-то так в представлении

<%=Html.CheckBox( "foo", Model.foo) %>

Конечно, приведенный выше код не работает, потому что DefaultModelBinder (?) Не знает, как преобразовать вывод из Checkbox (обсуждается здесь ) в байт, поэтому ModelState.IsValid имеет значение false.

Как заставить это работать? Пользовательские модели Binder? Как? Кажется, простая проблема, но я не смог найти исчерпывающее руководство, как это сделать. (да, я знаю, что сосу гуглить: -)

1 Ответ

4 голосов
/ 14 апреля 2009

В вашей модели - преобразовать байт в свойство Bool. Вы все еще можете хранить в базе данных в виде байта. Просто заставьте get / set использовать bool и конвертировать туда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...