Asp.net 如何在Mvc中将多个复选框值绑定到模型的属性?
使用此格式,我可以从sql server获取值,但无法将它们与属性绑定Asp.net 如何在Mvc中将多个复选框值绑定到模型的属性?,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,使用此格式,我可以从sql server获取值,但无法将它们与属性绑定 这看起来很奇怪,但我将属性值直接输入到数据库中。我只想使用html帮助程序。如果要将一系列可能的值绑定到属性便利设施,请使用单选按钮(复选框用于绑定到布尔值) @Html.radiobutton(m=>m.便利设施,“WiFi”)WiFi @RadioButton(m=>m.便利设施,“餐饮”)餐饮 //更多单选按钮,用于您要为便利设施设置的其他可能值 这将创建一系列单选按钮,允许您通过其中一个选项(“WiFi”、“餐饮”
这看起来很奇怪,但我将属性值直接输入到数据库中。我只想使用html帮助程序。如果要将一系列可能的值绑定到属性
便利设施
,请使用单选按钮(复选框用于绑定到布尔值)
@Html.radiobutton(m=>m.便利设施,“WiFi”)WiFi
@RadioButton(m=>m.便利设施,“餐饮”)餐饮
//更多单选按钮,用于您要为便利设施设置的其他可能值
这将创建一系列单选按钮,允许您通过其中一个选项(“WiFi”、“餐饮”等)设置便利设施的值,如果便利设施的初始值为“餐饮”,则在渲染视图时,将选择第二个单选按钮
注意:始终使用html帮助程序的强类型版本-@html.CheckBoxFor()
,而不是@html.CheckBox()
您的模型是否具有属性bool WiFi
和bool dinning
?我想你可能误解了@Html.CheckBox
我在模型中只有一个复选框属性,那就是便利设施。我想把这些复选框的所有值都绑定到便利设施上。你想要的是单选按钮——我会简单地给出一个答案,实际上我正在mvc上做一个老项目。我的前辈实现了“checkbox”类型的输入字段。我想改用html助手。使用输入字段,他能够获得所有选中复选框的值,并将它们存储到“字符串{get;set;}”中。数据库中的字段类型为字符串。我们没有使用布尔。是的,我知道。请简短地检查我的答案(复选框用于绑定到布尔值),但这样我无法同时选择它们。它们应该以字符串的形式存储。在这种情况下,您需要@Html.ListBoxFor()
和SelectList
以允许您选择多个值,或在视图modelbool IsWiFi
,bool IsDining
等中创建一系列属性,以便将它们绑定到复选框,或者手动从FormCollection
中提取复选框值,并按照您当前必须执行的操作生成字符串i没有bool Wifi。我有一个字符串,其中已勾选的值将被存储。我知道,但您不了解模型绑定是如何工作的。您不能绑定到不存在的属性@Html.CheckBox(“WiFi”,…)
创建
注意名称属性(“WiFi”)。当此发回时,它会尝试在模型中查找名为WiFi
的属性,该属性不存在,因此不会绑定任何内容。您可以选择使用javascript动态创建值,或者使用FormCollection
检查键并手动创建“便利设施”字符串,这就是我试图找到其他方法的原因。我有22个复选框,我不想在模型中创建22个布尔属性。可能是我将不得不只使用输入字段选项,这是在项目早期使用的。但无论如何,谢谢你的帮助。
@Html.CheckBox("WiFi", @Model.Amenities.Contains("WiFi"))
@Html.CheckBox("Dining", @Model.Amenities.Contains("Dining"))
@Html.RadioButtonFor(m => m.Amenities, "WiFi")<span>WiFi</span>
@Html.RadioButtonFor(m => m.Amenities, "Dining")<span>Dining</span>
// More radio buttons for other possible values that you want to set for Amenities