爲什麼不讓你的數據庫或知識庫或業務規則 - 無論你稱之爲發回IDictionary ???
這個例子假設你有一個用戶列表,你會可以說名+姓送回他們的ID的鍵和值:
然後用這個觀點裏面....
<%= Html.DropDownListFor(model => model.UserID, new SelectList(Model.AvailableUsers, "Key", "Value",Model.UserID))%>
model.UserID = Key
Model.AvailableUsers = IDictionary<int,string>
我在一些輔助代碼創建我的列表有時然後我查找使用這個幫手這些價值觀......所以有一個集中的類(通常爲靜態),將產生這些「用戶」 ......
直接將這些用戶傳遞到視圖上,或者直接傳遞給V在你的情況下,這是我推薦的
注意:你不會將數據上下文與List/Model Binding連接起來,這會使事情太複雜。只要看看在用戶名從列表中選定的用戶,然後在您的文章處理apporpriately ...
視圖模型:
public class UsersViewModel
{
public int UserID { get; set; }
public IDictionary<int,string> AvailableUsers{ get; set; }
}
在你的帖子...
[HttpPost]
[ValidateAntiForgeryToken]
[DemandAuthorization(RoleNames.AdminUser, AlwaysAllowLocalRequests = true)]
public ActionResult AllUsers(int UserID)
{
try
{
//save to db or whatever...
return RedirectToAction("Index", "Users");
}
catch (RulesException ex)
{
ex.CopyTo(ModelState); //custom validation copied to model state
}
var _users= _service.GetUsers();
return View("AllUsers", new UsersViewModel
{
UserID = UserID,
AvailableUsers = _users
});
}
你是什麼意思「複製GET和POST方法中的所有列表加載」?你目前的代碼是什麼樣的? –
@Tom優秀的問題,我希望我可以做5投票ups這個,但+1然而 –