CheckBoxList множественный выбор: сложность привязки модели

У меня есть следующие классы

 public class UserRoleModel
{
    public string Role { get; set; }
    public bool UserRole { get; set; }
}

и public UserRoleModel [] UserRoles {get; установлен; }


Мой контроллер выглядит следующим образом:

 public ActionResult CreateUser()
     {
         UserDetailsModel model = new UserDetailsModel();
         return View(model);
     }

     [HttpPost]
     public ActionResult CreateUser(UserDetailsModel model)
     {

         return View(model);
     }

На мой взгляд, у меня

    >@foreach (var item in Model.UserRoles)      
    { 

    name = "UserRoles"+ ".Value["+ i + "]"; 
    id= "UserRoles" + "_Value[" + i++ + "]";
    selected = item.UserRole ? "checked=\"checked\"" : ""; 

        <p>
        <input type="checkbox" name="@name" id="@id" @selected value="true" /> 
        <label for="@id">@item.Role</label> 
        <input type="hidden" name="@name" value="false" /> 
        </p> 
  } 

Несмотря на то, что значения отображаются соответствующим образом на мой взгляд, нет никакой обратной привязки модели для UserRoles. Что мне не хватает или есть какой-нибудь лучший и более чистый метод?

9
задан learning 27 January 2011 в 07:35
поделиться