我正在使用屬性路由獲取頁面的動作。但是當我發佈它時,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