簡體   English   中英

jQuery選擇Multiselect MVC 5未在“編輯”表單上填充所選值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM