[英]Jquery Chosen Multiselect MVC 5 is not populating selected values on Edit form
這是我的視圖模型:
public class AccEditViewModel
{
[Required]
public int Id { get; set; }
[Required]
[Display(Name = "Branch")]
public List<long> Branches { get; set; }
[Required]
[Display(Name = "User Type")]
public string UserType { get; set; }
[Required]
[Display(Name = "IsActive")]
public bool IsActive { get; set; }
}
這是我在控制器中的操作方法:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
ApplicationUser user = UserManager.FindById((int)id);
if (user == null)
{
return HttpNotFound();
}
ApplicationDbContext db = new ApplicationDbContext();
AccEditViewModel model = new AccEditViewModel()
{
Id = user.Id,
IsActive = user.IsActive,
UserType = user.UserType,
};
model.Branches = new List<long>();
foreach (Branch branch in user.Branches)
{
model.Branches.Add(branch.BranchID);
}
ViewBag.Branches = db.Branches.Where(x => x.IsActive == true).AsEnumerable();
ViewBag.UserTypes = new SelectList(UserTypes.GetUserTypes(), "Value", "Type", user.UserType);
return View(model);
}
這是我的看法:
<div class="form-group">
@Html.LabelFor(m => m.Branches, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.ListBox("Branches", new MultiSelectList(ViewBag.Branches, "BranchID", "Name", Model.Branches.AsEnumerable()), new { @class = "form-control branches-select" })
@Html.ValidationMessageFor(m => m.Branches)
</div>
</div>
<script src="@Url.Content("~/Scripts/chosen.jquery.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/chosen.css")" rel="stylesheet" type="text/css" />
<script> $(".branches-select").chosen(); </script>
當我使用模型中的Branches
屬性時,顯示的是沒有填充所選值的情況,這是一個問題;當我使用ViewModel中未清除的另一個屬性時,則可以正常工作,但不能與POST方法上需要的ViewModel屬性一起使用。
請告訴我這段代碼有什么問題。
非常感謝
嘗試為ViewBag集合使用與Model屬性不同的名稱。
調節器
ViewBag.BranchList = db.Branches.Where(x => x.IsActive == true).AsEnumerable();
視圖
@Html.ListBox("Branches", new MultiSelectList(ViewBag.BranchList,"BranchID","Name" ,Model.Branches.AsEnumerable()), new { @class = "form-control branches-select" })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.