查看没有达到控制器

时间:2016-05-16 22:52:38

标签: c# asp.net-mvc

这个简单的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"); 
    }
这看起来不错吗?我做错了什么?

1 个答案:

答案 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>