2011-12-30 89 views
0

我有一个ajax链接删除列表中的项目。ajax调用的事件OnSuccess未触发

这里是视图:

@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事件!

回答

1

我想应该是在C#中的意义不是实现委托:

检查此链接

+0

非常感谢。 – Bronzato 2011-12-30 10:22:30

2

可能是请求的一部分失败的(虽然是怪)我希望它的所有或无过程,请尝试执行OnFailure属性?

我发现一个很好的成功意味着这里https://stackoverflow.com/a/1183985/208565虽然你根本没有被调用。如果调用OnFailure,将很好地查看返回的状态代码。

0

很可能你不会返回正确的答案,即ajax解释和理解。尝试使用调试器控制台查看确切的答复,并相应地修复它。

2

确保你已经包括下面的脚本到你的页面:

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

,并且已经在你的web.config启用非侵入式JavaScript:

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

这是什么使阿贾克斯*例如Ajax.BeginForm等助手,验证工作。

关于Ajax.BeginForm doesn't call onSuccess

+0

非常感谢@BrainCoder ..它适用于我.. – 2013-08-05 08:01:07

+0

您复制@DarinDimitrov答案而不尊重来源。太粗鲁了。 http://stackoverflow.com/a/7281319/1893261 – 2014-08-08 09:47:45