Asp.net mvc 3 提交后的mvc3复选框值

Asp.net mvc 3 提交后的mvc3复选框值,asp.net-mvc-3,checkbox,foreach,Asp.net Mvc 3,Checkbox,Foreach,我有一个表单,有两个字段,一个下拉列表和一个复选框。我的一切都正常工作,但由于某种原因,如果选中复选框,我无法获取复选框的值。这是我的代码 [HttpPost] public ActionResult view(string pick) { switch (pick) { case "Deny": // capture checkbox value here

我有一个表单,有两个字段,一个下拉列表和一个复选框。我的一切都正常工作,但由于某种原因,如果选中复选框,我无法获取复选框的值。这是我的代码

[HttpPost]
    public ActionResult view(string pick)
    {

        switch (pick)
        {
            case "Deny":
                // capture checkbox value here
                break;
            case "Accept":
                // capture checkbox value here
                break;

        }
        return View();
    }
这是我的看法

@using (Html.BeginForm("view", "grouprequest", FormMethod.Post, new {}))
{


 @Html.DropDownList("pick", new SelectList(new List<Object>{ 
                new{ Text ="Accept", Value= "Accept"},new{ Text ="Deny", Value= "Deny"}},    "Value", "Text"), new {})

 <input type="submit" name="work" id="work" value="Update" style="font-size:16px" />

foreach (var item in Model)
{
 <input type="checkbox" id="@item.grouprequestID" name="@item.grouprequestID"  value="@item.grouprequestID" />


}
}

将复选框发布到服务器时,其行为有点奇怪。 如果选中一个框,浏览器将发送
name=value
,如中所示

<input type="checkbox" name="name" value="value" />
这是控制器的操作方法:

public ActionMethod MyAction(IEumerable<int> myValues)
您还应该注意,如果您使用的是
Html
helper扩展名:

@Html.CheckBoxFor(m => m.MyValue)
其中,
MyValue
是一个
bool
扩展将创建一个
复选框
输入标记和一个同名的
隐藏
输入标记,这意味着一个值将始终传递到控制器方法中


希望这有帮助。

您的
型号是什么样子的?也,不,给复选框一个通用名称,如
selectedGroupRequestIds
,然后在操作中接受
IEnumerable selectedGroupRequestIds
?我刚刚编辑了我的消息并放置了模型,好吧,我明白你的意思了,给它们一个通用名称,然后使用GrouprequestID选择所选的值,我会尝试的,谢谢感谢您的回复,它清除了一切,代码正在运行!!
<input type="checkbox" name="MyValues" value="1" checked="checked"/>
<input type="checkbox" name="MyValues" value="2" />
<input type="checkbox" name="MyValues" value="3" />
public ActionMethod MyAction(IEumerable<int> myValues)
myValues[0] == 1
@Html.CheckBoxFor(m => m.MyValue)