我有一个简单的反馈表单,用户只能选择一个
值Good Better Best
这些是固定的文本和值,所以我很难对它进行编码。尝试过这些方法来获取它们的值,但这些尝试都没有起作用。
如何在表格中保存所选的单选按钮值,如何在编辑时保留它?
反馈是我的表和模型中的数据类型int列。
在所有情况下,0保存在任何选择上,尝试2错误,因为只显示一个单选按钮。
尝试1
@Html.Label("Good")
@Html.RadioButtonFor(model => model.FeedBack, false)
@Html.Label("Better")
@Html.RadioButtonFor(model => model.FeedBack, false)
@Html.Label("Best")
@Html.RadioButtonFor(model => model.FeedBack, false)
@Html.Label("Excellent")
@Html.RadioButtonFor(model => model.FeedBack, false)
尝试2
@Html.RadioButtonFor(model => model.FeedBack,
new List<SelectListItem>{new SelectListItem{Text="Good",Value = "1" },
new SelectListItem { Text = "Better", Value = "2" },
new SelectListItem { Text = "Best", Value = "3" },
new SelectListItem { Text = "Excellent",Value="4" } })
尝试3
@Html.RadioButton("rb", 1, isChecked: false)@Html.Label("Good")
@Html.RadioButton("rb", 2, isChecked: false)@Html.Label("Better")
@Html.RadioButton("rb", 3, isChecked: false)@Html.Label("Best")
@Html.RadioButton("rb", 4, isChecked: false)@Html.Label("Excellent")
答案 0 :(得分:2)
您已为所有单选按钮指定了false
的值,该值不能绑定到int
类型的属性。假设您的值为1
(好)到4
(优秀),那么您的观点需要
<label>
@Html.RadioButtonFor(model => model.FeedBack, 1, new { id = "" })
<span>Good</span>
</label>
<label>
@Html.RadioButtonFor(model => model.FeedBack, 2, new { id = "" })
<span>Better</span>
</label>
.... // ditto for Better (value=3) and Excellent(value=4)
旁注:@Html.Label("Good")
创建一个与名为Good
的表单控件关联的标签元素,该控件不存在,因此单击它不会选中/取消选中相关按钮。
我还建议您考虑使用enum
作为您的值,而不是int
。并且可能想要考虑“Excellect”如何被评为“最佳”