在Ajax.BeginForm()
中使用ASP.Net MVC
帮助时,我可以传递包含不同功能名称的选项,例如一个用于运行OnBegin
,一个用于OnSuccess
等。做这些工作“引擎盖下”?
我问的原因是我正在扩展它以提供基于JQuery
的替代方案,我需要弄清楚如何从JSON
字符串中指定方法名称实际上打电话给他们。
AjaxOptions
类有一个序列化方法,在该方法中,它以下列方式包装方法名称(在此示例中,AjaxOptions
OnSuccess
属性设置为{{1 }}:
onSuccess: Function.createDelegate(this, mySuccessFunction(p))
我已经创建了自己的mySuccessFunction(p)
类,它以相同的方式序列化(但有一些额外的选项可用)。所以,我在发布表单的方法中可用的是上面的属性作为json对象的一部分,我需要能够调用该函数。
我该如何做到这一点?
答案 0 :(得分:1)
我找到了问题的答案:
它真正归结为,正在执行包含在字符串变量中的一行代码。这可以使用'eval(x)'语法轻松完成。以下示例适用于onSuccess属性:
eval(settings.onSuccess)
有时你只需要再想一步就能意识到你要做的事情,以及它是多么容易=)