Ajax.BeginForm()中使用ASP.Net MVC助手时,我可以传递具有不同功能名称的选项,例如,一个用于运行OnBegin,一个用于OnSuccess等。这些功能如何“在幕后”进行?

我问的原因是我正在扩展它以提供基于JQuery的替代方法,并且我需要弄清楚如何从在JSON字符串中指定的方法名称真正地调用它们。

AjaxOptions类具有用于序列化的方法,该类以以下方式包装方法名称(在本示例中,AjaxOptions OnSuccess属性设置为mySuccessFunction(p)

onSuccess:Function.createDelegate(this,mySuccessFunction(p))

我产生了自己的JQueryAjaxOptions类,该类以相同的方式进行序列化(但有一些可用的附加选项)。因此,通常来说,我在用于发布表单的方法中可用的是上述属性,它是json对象的一部分,并且我需要能够调用该函数。

我该怎么做?

最佳答案

我找到了解决我问题的答案:

真正归结为,是执行了包含在字符串变量中的一行代码。使用'eval(x)'语法可以轻松完成此操作。以下示例适用于onSuccess属性:

评估(settings.onSuccess)

有时,您只需要向后退一步,以了解您要执行的操作以及操作的简便性=)

关于javascript - 如何模仿ASP.NET AjaxOptions委托(delegate)函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/307220/

10-12 00:00