在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/