Как имитировать функции делегатов ASP.NET AjaxOptions? - PullRequest
1 голос
/ 21 ноября 2008

При использовании помощника Ajax.BeginForm() в ASP.Net MVC я могу передавать опции с именами различных функций, например, одну для запуска OnBegin, одну для OnSuccess и т. Д. Как это работает "под капотом"

Причина, по которой я спрашиваю, состоит в том, что я расширяю ее, чтобы предоставить альтернативу на основе JQuery, и мне нужно выяснить, как получить от имен методов, указанных в строке JSON, до их фактического вызова .

У класса AjaxOptions есть метод для сериализации, в котором он переносит имя метода следующим образом (в этом примере свойство AjaxOptions OnSuccess установлено в mySuccessFunction(p):

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

Я создал свой собственный класс JQueryAjaxOptions, который сериализуется таким же образом (но с некоторыми дополнительными доступными опциями). Итак, в моем методе публикации формы у меня есть указанное выше свойство как часть объекта json, и мне нужно иметь возможность вызывать функцию.

Как мне это сделать?

1 Ответ

1 голос
/ 21 ноября 2008

Я нашел ответ на мою проблему:

То, к чему это действительно сводилось, было выполнение строки кода, содержащейся в строковой переменной. Это легко сделать с помощью синтаксиса eval (x). Следующий пример работает для свойства onSuccess:

eval(settings.onSuccess)

Иногда вам просто нужно сделать еще один шаг назад, чтобы понять, что вы пытаетесь сделать, и насколько это просто =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...