私の見解:
<div class="editor-label">
@Html.LabelFor(model => model.UserList)
</div>
<div class="editor-field">
@Html.ListBoxFor(model => model.SelectedUsers, new MultiSelectList(Model.UserList, "Key", "Value", Model.SelectedUsers))
@Html.ValidationMessageFor(model => model.UserList)
</div>
私のビューモデル:
public class UserListViewModel
{
public UserListViewModel() :
this(new List<KeyValuePair<string, string>>())
{
}
public UserListViewModel(IList<KeyValuePair<string, string>> userList)
{
this.UserList = userList;
SelectedUsers = new List<string>();
}
public IList<KeyValuePair<string,string>> UserList { get; set; }
public IList<string> SelectedUsers { get; set; }
}
現在、選択した値のみを取得し、コントローラーに到達すると UserList が空になるため、再度比較することはできません。MultiSelectList から値とテキストの両方を返す方法、または少なくともコントローラーに到達するまで UserList の内容を覚えておく方法はありますか?