2008-11-20 86 views
1

當在ASP.Net MVC中使用Ajax.BeginForm()幫手時,我可以傳遞具有不同功能名稱的選項,例如一個用於運行OnBegin,另一個用於OnSuccess等。這些工作如何「底層」工作?如何模仿ASP.NET AjaxOptions委託功能?

我問的原因是我擴展這個提供了一個基於JQuery的替代方案,我需要弄清楚如何獲得JSON字符串中指定的方法名稱以實際調用它們。

AjaxOptions類有序列化的方法,其中包裝以下列方式方法的名稱(在這個例子中,AjaxOptionsOnSuccess屬性設置爲mySuccessFunction(p)

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

我產生了我自己JQueryAjaxOptions類,它以相同的方式序列化(但有一些額外的選項可用)。因此,我在發佈表單的方法中可用的是上述屬性作爲json對象的一部分,我需要能夠調用函數。

我該如何做到這一點?

回答

1

我找到了答案,我的問題:

它真正歸結爲,在執行包含在一個字符串變量的代碼行。這可以使用'eval(x)'語法輕鬆完成。下面的例子可以用到的onSuccess屬性:

eval(settings.onSuccess)

有時候,你只需要考慮向後一個步驟來實現你想要做什麼,並且是多麼容易=)