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)