Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在Mvc中将多个复选框值绑定到模型的属性?_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

Asp.net 如何在Mvc中将多个复选框值绑定到模型的属性?

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”、“餐饮”

使用此格式,我可以从sql server获取值,但无法将它们与属性绑定


这看起来很奇怪,但我将属性值直接输入到数据库中。我只想使用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
以允许您选择多个值,或在视图model
bool 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