不会触发ajax调用上的事件OnSuccess

时间:2011-12-30 09:42:46

标签: ajax asp.net-mvc

我有一个 ajax链接,用于删除列表中的项目。

以下是观点:

@Ajax.ActionLink("Test", "Delete", new { projectID = item.ProjectID }, new AjaxOptions
{
       Confirm = "Are you sure you want to delete this item?",
       HttpMethod = "DELETE",
       OnSuccess = "function() { alert('ok'); }"
})

这是动作控制器:

    [AcceptVerbs(HttpVerbs.Delete)]
    public ContentResult Delete(int projectID)
    {
        Project proj = m_ProjectBusiness.GetProject(projectID);

        if (proj != null)
        {
            m_ProjectBusiness.DeleteProject(proj);
        }

        return null;
    }

显示确认信息。

调用动作控制器。

视图显示回来

但是没有触发OnSuccess事件!

4 个答案:

答案 0 :(得分:2)

可能是请求的那部分失败了(虽然会很奇怪)我希望它是一个全有或全无的过程,你试过实施 OnFailure 属性吗?

我发现成功在https://stackoverflow.com/a/1183985/208565取得成功的一个很好的观点虽然你根本没有被调用。如果调用OnFailure,将很高兴看到返回的状态代码。

答案 1 :(得分:2)

确保您已将以下脚本包含在您的页面中:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript">         </script>

并且您已在web.config中启用了不显眼的javascript:

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

这就是使Ajax。*助手如Ajax.BeginForm,验证工作的原因。

问候Ajax.BeginForm doesn't call onSuccess

答案 2 :(得分:0)

我认为它应该是C#意义上的委托而不是实现:

点击此链接http://squarewidget.com/Delete-Like-a-Rock-Star-with-MVC3-Ajax-and-jQuery

答案 3 :(得分:0)

很可能你没有回复正确的答案,ajax解释和理解。尝试使用调试器控制台查看确切的答复,并相应地进行修复。