我正在使用属性路由获取页面的动作。但是当我发布它时,ajax表单忽略了我在参数中定义的动作和控制器,并尝试使用get方法发布到相同的url。Ajax.BeginForm忽略MVC中参数中定义的动作和控制器5
这是我取得动作:
[AllowAnonymous]
[HttpGet]
[Route("path")]
public ActionResult Action()
{
return View();
}
这是我的帖子行动:
[AllowAnonymous]
[HttpPost]
public JsonResult Action(Model model)
{
return Json(true);
}
这是我的看法:
@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "someDiv" }))
{
@SomeInput
<input type="submit" value="send" />
}
这生成的HTML:
<form action="/path" data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#someDiv" id="form0" method="post">
<input value="submit" type="submit">
</form>
单击按钮时。发布到域/路径的帖子正在发射。为什么我定义的操作被忽略?
您可以发布由您Ajax.BeginForm生成的HTML?我怀疑它一直没有找到你的路线,所以它已经把它留作空白,它会击中你的网站的根。 – Slicksim
@Slicksim我已经更新了这个问题。 – gkon
您是否也在控制器上定义了路由?或只是在这一个行动? – Slicksim