没有在按钮上调用控制器单击MVC

时间:2017-06-27 17:51:02

标签: asp.net-mvc

在我的例子中,我无法通过点击按钮来呼叫控制器。 我的按钮代码是:

<button id="confirmsignup" name="confirmsignup" class="btn btn-success" onclick="location.href='@Url.Action("RegisterUser", "Home")'" >Sign Up</button>

我的控制器是HomeController。

我的行动方法是:

[HttpPost]
    public ActionResult RegisterUser(UserInfo objUser)
    {

        int res= udaObj.RegisterUser(objUser);
    }

2 个答案:

答案 0 :(得分:1)

location.href="someurl"行会向该网址发出新的GET请求,而不是表单帖子!

要将表单(及其数据)提交给HttpPost操作方法,请将表单元素包装在form标记内,然后让按钮提交。将表单的action属性设置为RegisterUser操作方法。

您可以使用Html.BeginForm辅助方法生成表单标记标记。

@using(Html.BeginForm("RegisterUser","Home"))
{
  <!-- your other input form elements goes here -->

  <button id="confirmsignup" type="submit" 
                   name="confirmsignup" class="btn btn-success" >Sign Up</button>

}

答案 1 :(得分:0)

<button id="confirmsignup" name="confirmsignup" class="btn btn-success" onclick="location.href='@Url.Action("RegisterUser", "Home")'" >Sign Up</button>

上面的代码定义了类似于HTTP GET方法。所以当按钮点击时你不能调用Registeruser方法。

所以你只需使用MVC表单提交或jquery post来调用HTTP POST方法 或者它考虑使用GET方法。