Ajax.BeginForm上的回调不能正常工作

时间:2011-05-05 23:47:22

标签: ajax asp.net-mvc-3 callback razor

为什么我总是有这么多麻烦......?鉴于我没有在我的other article中解决问题,我决定只将javascript编码为值...所以我有:

OnSuccess="alert('ok')",
OnFailure="alert('failed')",

所以我的问题是提交工作正常;一条记录被插入到数据库中,我得到一个回调...但我得到了错误的回调!即使记录被插入,我也会失败。 heeeeelp!

2 个答案:

答案 0 :(得分:2)

您应该能够从响应中读取数据,以找出其被视为失败的原因:

OnFailure="handleError",

...

function handleError(ajaxContext) {
    var response = ajaxContext.get_response();
    var statusCode = response.get_statusCode();
    alert("Sorry, the request failed with status code " + statusCode);
}

或者,使用Fiddler并查看回复。确保状态代码,内容类型和内容都符合预期。

答案 1 :(得分:0)

好吧,我想出了一些事情:

  1. OnFailure =“handleError”是执行此操作的正确方法(请参阅我提及的其他文章以进行解决)
  2. ajaxContext没有get_response()方法,因为我实际上是将函数挂钩到OnComplete事件(我的坏)!一旦连接到OnSuccess,我得到我的控制器的方法Json返回值本地
  3. 当数据库条目失败时,我正在调用OnSuccess处理程序。这是因为我的控制器方法是try {} catch {} ing因此永远不会失败!我很蠢:(