C# FormCollection未获取单选按钮的正确值
当我发布FormCollection并尝试获取单选按钮的值时,它总是获取最后一个单选按钮的值(无论选中哪一个)。为什么要这样做?我的临时解决方法是创建一个隐藏值并添加一个onclick JS方法。我尝试过使用纯HTML代码,结果也一样 查看代码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
@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" />
}