如何在不使用方法参数的情况下访问ASP.NET MVC中的CheckBox值

时间:2009-07-09 06:56:05

标签: asp.net-mvc

我使用以下HTML帮助程序生成复选框:

<%= Html.CheckBox("DeluxeFeature")%>

现在我想在我的控制器中访问此复选框的值。我该怎么做?我不打算使用方法参数名称,因为有很多复选框,并且将所有这些复选框放在参数中会使方法混乱。

我尝试使用

Request.Form["DeluxeFeature"]

但这种行为很奇怪;如果未勾选复选框,则Request.Form["DeluxeFeature"]会返回“false”,这是预期的。但如果勾选了复选框,则会重新输入“true, false”。

非常奇怪,不是吗?

2 个答案:

答案 0 :(得分:7)

asp.net论坛上的

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.
}