在我的例子中,我无法通过点击按钮来呼叫控制器。 我的按钮代码是:
<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);
}
答案 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方法。