这个简单的mvc应用程序想要一个单选按钮,文本输入工作,但单选按钮不给我一个返回,例如,3个按钮(红色,蓝色,绿色),如果我选择红色'然后viewbag.sup将返回红色选择!'但即使我跑了这个并检查了红色'没有任何反应,这就是我得到的:
查看(Search.cshtml):
@using (Html.BeginForm("Search", "Home", FormMethod.Post))
{
@Html.RadioButton("color", "red", new { id = "isRed" })
@Html.RadioButton("color", "blue", true)
@Html.RadioButton("color", "green")
}
<p>@ViewBag.Sup</p>
Controller(HomeController.cs):
public ActionResult Search(string color)
{
if (color == "red")
{
ViewBag.Sup = "red chosen!";
}
return View("Search");
}
这看起来不错吗?我做错了什么?
答案 0 :(得分:0)
您需要一种机制来实际提交表单。例如,您可以在表单中添加一个按钮来执行此操作:
<button type="submit"/>
或者将一个更改事件处理程序添加到将提交表单的单选按钮(我在这里使用了JQuery,如果你已经使用了标准的MVC项目模板,你几乎肯定会加载它,尽管有将这样的处理程序附加到单选按钮元素的各种其他方法):
@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { id = "SearchForm" }))
...
<script type="text/javascript">
$('input[type=radio]').on('change', function() {
$("#SearchForm").submit();
});
</script>