C# FormCollection未获取单选按钮的正确值

C# FormCollection未获取单选按钮的正确值,c#,asp.net-mvc-3,radio-button,C#,Asp.net Mvc 3,Radio Button,当我发布FormCollection并尝试获取单选按钮的值时,它总是获取最后一个单选按钮的值(无论选中哪一个)。为什么要这样做?我的临时解决方法是创建一个隐藏值并添加一个onclick JS方法。我尝试过使用纯HTML代码,结果也一样 查看代码 @Html.RadioButton("Radio", "No", true, new { id = "Radio0"}) + " No"); @Html.RadioButton("Radio", "Yes", false, new { id = "Rad

当我发布FormCollection并尝试获取单选按钮的值时,它总是获取最后一个单选按钮的值(无论选中哪一个)。为什么要这样做?我的临时解决方法是创建一个隐藏值并添加一个onclick JS方法。我尝试过使用纯HTML代码,结果也一样

查看代码

@Html.RadioButton("Radio", "No", true, new { id = "Radio0"}) + " No");
@Html.RadioButton("Radio", "Yes", false, new { id = "Radio1"}) + " Yes");
结果HTML

<input checked="checked" id="Radio0" name="Radio" type="radio" value="No"> No
<input id="Radio1" name="Radio" type="radio" value="Yes"> Yes

实际上,我们无法复制这个问题。它正确识别控制器回发时选择的单选按钮

您可能需要检查视图的代码(使用视图的给定语法,它首先不应该呈现页面&应该抛出编译错误)

这就是我所测试的观点

@{
    ViewBag.Title = "MyView";
}

<h2>MyPostBack</h2>
@using (Html.BeginForm())
{
    @Html.RadioButton("Radio", "No", true, new { id = "Radio0"}) @:No
    @Html.RadioButton("Radio", "Yes", false, new { id = "Radio1"}) @:Yes
    <input type ="submit" runat="server" id="btnSubmit" />
}
@{
ViewBag.Title=“MyView”;
}
回帖
@使用(Html.BeginForm())
{
@RadioButton(“Radio”,“No”,true,new{id=“Radio0”})@:No
@RadioButton(“单选”,“是”,假,新的{id=“Radio1”})@:是
}
编辑

根据您的评论,由于您使用的是
DevExpress
,请首先阅读提供的文档。它应该为你指明正确的方向。通过谷歌搜索,发现除了
RadioButton
扩展名之外,还有一个
RadioButtonList
扩展名。这里有几个链接可以帮助你

(虽然我找不到如何使用
RadioButton
的示例;根据线程,您可以使用
RadioButton
,如果is有两个选项可供选择;否则您需要选择
RadioButton列表


正如大家提到的,传递
Model/ViewModel
比发送
FormCollection

更好,因为表单位于第三方控件中,我甚至不想进入该控件。我也没有使用提交按钮,它是由控件创建的回发。也许这是我使用的控件的错误。我将制作一个简单的示例页面,然后发布一个更新。所以您使用的是DexExpress MVC扩展。我不认为有bug(否则论坛上会有很多关于这个的讨论)。我编辑了我的帖子;看一看。回邮是由第三方控制的。不过,我还是可以尝试使用ViewModel。你能发一个链接到一个例子吗?我想我知道你的意思,但我不确定。它是DevExpress,我可以控制参数。
@{
    ViewBag.Title = "MyView";
}

<h2>MyPostBack</h2>
@using (Html.BeginForm())
{
    @Html.RadioButton("Radio", "No", true, new { id = "Radio0"}) @:No
    @Html.RadioButton("Radio", "Yes", false, new { id = "Radio1"}) @:Yes
    <input type ="submit" runat="server" id="btnSubmit" />
}