Asp.net MVC Nhibernate не собирает выбранные элементы в ListBox - PullRequest
0 голосов
/ 15 марта 2012

Когда пользователь выбирает элементы в ролях и отправляет их, модель не заполняется выбранными элементами.Могу ли я получить некоторое представление, если я должен сделать это по-другому.

Модель

    public virtual string UserName { get; set; }
    public virtual string Password { get; set; }
    public virtual DateTime LastLogin { get; set; }
    public virtual int FailedAttempts { get; set; }
    public virtual bool IsLocked { get; set; }
    public virtual IList<Role> Roles { get; set; }

Контроллер

    [HttpPost]
    public ActionResult Edit(Login user)
    {
        var u = repoLogin.Update(user);
        repoLogin.Save(u);

        return View(u);
    }

Вид

        <label>Roles</label>
        @Html.ListBoxFor(m => m.Roles, new SelectList(Enum.GetValues(typeof(LiveReport.Domain.Enum.UserRoles))))

1 Ответ

0 голосов
/ 15 марта 2012

Role - сложный объект. ListBoxFor отправляет список простых строк, соответствующих выбранным значениям.

Таким образом, вы можете иметь свойство, которое будет содержать выбранные значения:

public virtual IList<string> SelectedRoles { get; set; }

и затем привязать список выбора к нему:

@Html.ListBoxFor(
    m => m.SelectedRoles, 
    new SelectList(
        Enum.GetValues(typeof(LiveReport.Domain.Enum.UserRoles))
    )
)

Также вы, кажется, используете некоторое перечисление для заполнения пунктов списка выбора. Таким образом, вы можете использовать это же перечисление как свойство для привязки списка к:

public virtual IList<UserRoles> SelectedRoles { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...