我有一个包含多个链接的页面。 这些链接应该做一个ajax后和回调。 但是,链接是做一个获取,而不是一个帖子。 这将导致404错误,因为我没有一个操作方法以处理请求的URL的获取。
如果我从我的行动方法,链接的作品删除HTTPPost属性,但回调失败,JSON的我返回一个新的页面呈现。
下面是我用在我看来代码。
<td id="action-@item.ItemID">@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到我的返回值解决这个问题,但这并不在页面上使用定义和失败回调函数。
任何帮助,将不胜感激。