我有一個包含多個鏈接的頁面。這些鏈接應該做一個ajax post和回調。但是,該鏈接正在執行Get而不是Post。這會導致404錯誤,因爲我沒有處理get請求URL的操作方法。MVC3 Razor Ajax.ActionLink不會使用POST方法
如果我從我的Action方法中刪除HTTPPost屬性,鏈接將起作用,但回調失敗並且我返回的Json會呈現在新頁面中。
這是我在我看來使用的代碼。
<td id="[email protected]">@Ajax.ActionLink("Add", "AddToOrder", new { itemID = item.ItemID }, new AjaxOptions { HttpMethod = "POST", OnSuccess = "actionCompleted" }, new { id = "add-" + item.ItemID })</td>
這結束了添加此HTML:
<td id="action-012679"><a data-ajax="true" data-ajax-method="POST" data-ajax-success="actionCompleted" href="/mysite/neworder/AddToOrder?itemID=012679" id="add-012679">Add to Order</a></td>
我的控制器具有以下操作方法。
[HttpPost]
public JsonResult AddToOrder(string itemID) {
return Json(new { id = itemID, Action = "Added", "Just getting this working"});
}
那個叫上我的成功回調方法是這樣的:
<script language="javascript" type="text/javascript">
function actionCompleted(response, status, data) {
alert("We have returned");
}
</script>
如果我改變我的操作方法到[HTTPPost]屬性[HTTPGET]我得到的Json錯誤。我可以通過將JsonRequestBehavior.AllowGet添加到我的返回值來解決此問題,但這不會使用頁面上定義的回調函數並失敗。
任何幫助,將不勝感激。
這看起來像一個神祕主義者。 您不要點UpdateTargetId,嘗試設置它。 – STO