C# 如何将Html.Checkbox的值传递给控制器?

C# 如何将Html.Checkbox的值传递给控制器?,c#,asp.net-mvc,html.checkbox,C#,Asp.net Mvc,Html.checkbox,基本上是标题所说的: 必须在没有提交按钮的情况下执行此操作。 这是我得到的,但我不知道如何进一步: 查看 <% using (Html.BeginForm("UpdateReleaseState", "Articles", new{reference=Model.Reference, CheckboxState=true})) {%> <%=Html.CheckBox("CheckboxState", Model.DoNotCheckRe

基本上是标题所说的:

必须在没有提交按钮的情况下执行此操作。 这是我得到的,但我不知道如何进一步:

查看

<% using (Html.BeginForm("UpdateReleaseState", "Articles", new{reference=Model.Reference, CheckboxState=true})) {%>
                    <%=Html.CheckBox("CheckboxState", Model.DoNotCheckReleaseState)%> Do not check release state
</div>

在我看来,我正在尝试传递复选框的值,但不知道提供什么作为参数。目前它是check=true

您需要将签名更改为:

public ActionResult UpdateReleaseState(Guid reference, bool CheckboxState)

MVC使用名称绑定值。还有一个注意事项,大小写很重要,只是因为它比可解释的内容更具可读性。但正如Andrei所发现的,它与it工作无关。

您需要将您的签名更改为:

public ActionResult UpdateReleaseState(Guid reference, bool CheckboxState)

MVC使用名称绑定值。还有一个注意事项,大小写很重要,只是因为它比可解释的内容更具可读性。但正如Andrei所发现的,它与它的工作无关。

在您的
复选框
方法中,您指定了它的名称-
复选框状态
。因此,表单发布后,请求将包含部分
CheckboxState=true
CheckboxState=false
。现在,您只需为action参数指定相同的名称(不区分大小写):


复选框
方法中,您已经指定了它的名称-
CheckboxState
。因此,表单发布后,请求将包含部分
CheckboxState=true
CheckboxState=false
。现在,您只需为action参数指定相同的名称(不区分大小写):


关于案例-是吗?“据我所知不是这样的。”安德烈,我记得不久前我遇到过套管问题。可能是我在修复过程中修改了其他东西,但我想从那时起我一直确保外壳是正确的。简而言之,MVC使用
反射
查找要绑定的属性,除非另有规定,否则它区分大小写。我非常怀疑您的问题是由大小写引起的。您可以自己尝试一个基本示例:使用
ID
发送post请求,并以
ID
的形式接收它。只是试着绝对肯定,一切都按预期进行。这并不是说你对套管的规定是不好的,我认为这是非常有用的。@Andrei,奇妙的发现和证据,谢谢!我今天学到了一些东西。我已经更新了我的答案,并且为太友+1,因为你的答案同样正确。谢谢你的回答,我也学到了一些东西。但是它似乎仍然没有发布,检查时它仍然没有到达操作。如何传递控制值。当前:不检查发布状态关于案例-是吗?“据我所知不是这样的。”安德烈,我记得不久前我遇到过套管问题。可能是我在修复过程中修改了其他东西,但我想从那时起我一直确保外壳是正确的。简而言之,MVC使用
反射
查找要绑定的属性,除非另有规定,否则它区分大小写。我非常怀疑您的问题是由大小写引起的。您可以自己尝试一个基本示例:使用
ID
发送post请求,并以
ID
的形式接收它。只是试着绝对肯定,一切都按预期进行。这并不是说你对套管的规定是不好的,我认为这是非常有用的。@Andrei,奇妙的发现和证据,谢谢!我今天学到了一些东西。我已经更新了我的答案,并且为太友+1,因为你的答案同样正确。谢谢你的回答,我也学到了一些东西。但是它似乎仍然没有发布,检查时它仍然没有到达操作。如何传递控制值。当前:不检查释放状态断点处于抛出状态,但是,当我选中复选框时,它从未被击中断点在抛出点上,但当我选中复选框时,它从未被击中
public ActionResult UpdateReleaseState(Guid reference, bool checkboxState)