我在控制器中有以下代码。
companyModel.lstusers = userBL.GetPayrollNotificationUsers();
companyModel.emails = companyBL.getEmails();
lstusers 和电子邮件是模型中的属性。
public List<UserListModel> lstusers { get; set; }
public List<EmailModel> emails { get; set; }
我在视野中有两个剑道多重选择。
@(Html.Kendo().MultiSelect()
.Name("lstusers")
.HtmlAttributes(new { style = "width:200px" })
.AutoClose(false)
.Placeholder("Select User")
.BindTo(new SelectList(Model.lstusers, "userId", "name"))
.Value(new SelectList(Model.lstusers))
)
@(Html.Kendo().MultiSelect()
.Name("emails")
.HtmlAttributes(new { style = "width:200px" })
.AutoClose(false)
.Placeholder("Select emails")
.BindTo(new SelectList(Model.emails, "EmailAddressId", "EmailAddress"))
.Value(new SelectList(Model.emails))
)
在post方法上,我将此视图传递给控制器。
public ActionResult EditCompany(CompanyModel companyModel)
现在,我在公司模型中为lstusers和电子邮件获取空值。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
使用MultiSelectFor
代替MultiSelect
助手。 MultiSelectFor
助手提供了一个真正绑定到您的属性的组件(get和set)。
示例:
@(Html.Kendo().MultiSelectFor(m => m.lstusers)
.HtmlAttributes(new { style = "width:200px" })
.AutoClose(false)
.Placeholder("Select User")
.BindTo(Model.YourDataSourceForUsersList)
其中YourDataSourceForUsersList
表示模型的属性,其中包含多选列表中应该可用的所有值。
答案 1 :(得分:0)
您的列表和所选项目需要单独的属性..为您的模型添加2个属性..
public List<UserListModel> lstusers { get; set; }
public List<EmailModel> emails { get; set; }
public string[] selectedUsers { get; set; }
public string[] selectedEmails { get; set; }
然后使用这些名称作为多重选择的名称
@(Html.Kendo().MultiSelect()
.Name("selectedUsers")
.HtmlAttributes(new { style = "width:200px" })
.AutoClose(false)
.Placeholder("Select User")
.BindTo(new SelectList(Model.lstusers, "userId", "name"))
.Value(new SelectList(Model.lstusers))
)
@(Html.Kendo().MultiSelect()
.Name("selectedEmails")
.HtmlAttributes(new { style = "width:200px" })
.AutoClose(false)
.Placeholder("Select emails")
.BindTo(new SelectList(Model.emails, "EmailAddressId", "EmailAddress"))
.Value(new SelectList(Model.emails))
)