jquery 回发后多选不保留选择

jquery multiselect not retaining selection after postback

回发后 bootstrap multiselect 控件出现问题。在我看来,有一个像

这样的下拉菜单
@Html.DropDownListFor(model => model.SelectedReportToRoles, Model.NotificationReportToRoles, new { multiple = "multiple", @class = "select-optional multiselect", @id = "ddlReportTo" })

并且,当我 select 来自 ddl 的多个项目并将其保存到数据库,然后返回页面时,我只能看到 selected 项目中的第一个项目只显示正如在 ddl 中检查的那样。如果我刷新页面,它会根据需要运行。即,ddl 将数据库中的所有项目显示为 selected(例如 3 个项目 selected)

我的控制器动作就像

   [HttpGet]
    public ActionResult Create()
    {
        return this.View(this.GenerateViewModel());
    }

    private static NotificationSettingsViewModel GenerateNotificationSettingsViewModel()
    {
        NotificationSettingsViewModel notificationSettingsViewModel = new NotificationSettingsViewModel();

    // Getting the roles from DB and assigning that to int array selectedReportToRoles

    notificationSettingsViewModel.NotificationReportToRoles = new MultiSelectList(roles, "RoleID", "RoleDescription", selectedReportToRoles);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(NotificationSettingsViewModel notificationSettingsViewModel)
    {
          // Save to Db
          return this.View(this.GenerateViewModel());
    }

我正在使用 jquery 版本 1.8.2

感谢任何帮助。

我通过将更改的参数保存到 TempData 然后从我的 post 操作重定向到 Get 操作解决了这个问题。

return this.RedirectToAction("Create");