将Javascript函数分配给AjaxOptions OnSuccess属性引发错误 - ASP.NET MVC

时间:2009-03-30 00:59:14

标签: asp.net-mvc asp.net-ajax

我正在使用Ajax.ActionLink帮助程序生成删除记录的链接。这是代码:

Ajax.ActionLink("Delete Image", "DeleteImage", new { id = item.Id },
                                               new AjaxOptions { HttpMethod = "Delete", OnSuccess = "Test()" } )

我将一个Javascript函数(Test())分配给OnSucess属性,因为我想做一些JQuery的东西,但是当我单击Delete链接时会出现此错误消息

  

Microsoft JScript运行时错误:'b'为null或不是对象

MicrosoftAjax.js文件中的

(第5行,第62099行)。如果我删除OnSuccess属性,一切正常(即使Test()函数为空,也会引发相同的错误)。谢谢你的帮助!

3 个答案:

答案 0 :(得分:19)

OnSuccess = "Test()" 

你必须这样写它是一个回调......

OnSuccess = "Test"

答案 1 :(得分:14)

如果必须将任何参数传递给OnSuccess事件,则可能必须以这种方式编写函数。

OnSuccess = "function(){exampleFunction('" + param1 + "');}"

答案 2 :(得分:0)

要传递参数,匿名函数将无效,您需要执行以下操作:

OnSuccess = String.Format("Test({0})", param)