0
返回文本和值我的觀點: 從MultiSelectList
<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的內容,直到我到達控制器?
好吧,但如果我想「記住」我的UserList的內容?有沒有辦法堅持它的狀態? – Janspeed
如果要將其保留在客戶端上,您可以使用隱藏字段(一種模仿ASP.NET MVC中不再存在的經典WebForms ViewState) - 如果您不關心用戶篡改,請使用此選項這個數據。或者如果列表是用戶特定的,則使用會話。或者在應用程序範圍內使用緩存。但正如我所說,不要使用任何這些。只需在需要時從列表中存儲的任何地方獲取它。這樣你就不需要堅持任何東西。 –