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");
回发后 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");