我使用以下HTML帮助程序生成复选框:
<%= Html.CheckBox("DeluxeFeature")%>
现在我想在我的控制器中访问此复选框的值。我该怎么做?我不打算使用方法参数名称,因为有很多复选框,并且将所有这些复选框放在参数中会使方法混乱。
我尝试使用
Request.Form["DeluxeFeature"]
但这种行为很奇怪;如果未勾选复选框,则Request.Form["DeluxeFeature"]
会返回“false
”,这是预期的。但如果勾选了复选框,则会重新输入“true, false
”。
非常奇怪,不是吗?
答案 0 :(得分:7)
This thread解释了这种行为 - 甚至还有来自ASP.NET MVC项目团队的Phil Haack的评论(奖金!!)。
因此,如果您没有使用levib发布的帮助器/模型绑定器,那么处理它的最佳方法似乎是
Request.Form.GetValues("DeluxeFeature")[0]
答案 1 :(得分:0)
这对我有用。
var checkbox = Request.Form.Get("DeluxeFeature");
if (checkbox.Contains("true"))
{
//Whatever code if the checkbox is checked.
}