我如何模仿ASP.NET AjaxOptions委托函数?

时间:2008-11-20 23:00:18

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

Ajax.BeginForm()中使用ASP.Net MVC帮助时,我可以传递包含不同功能名称的选项,例如一个用于运行OnBegin,一个用于OnSuccess等。做这些工作“引擎盖下”?

我问的原因是我正在扩展它以提供基于JQuery的替代方案,我需要弄清楚如何从JSON字符串中指定方法名称实际上打电话给他们。

AjaxOptions类有一个序列化方法,在该方法中,它以下列方式包装方法名称(在此示例中,AjaxOptions OnSuccess属性设置为{{1 }}:

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

我已经创建了自己的mySuccessFunction(p)类,它以相同的方式序列化(但有一些额外的选项可用)。所以,我在发布表单的方法中可用的是上面的属性作为json对象的一部分,我需要能够调用该函数。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案:

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

eval(settings.onSuccess)

有时你只需要再想一步就能意识到你要做的事情,以及它是多么容易=)