ASP.MVC Ajax-ответ возвращает форму с некоторым JS, не выполняющимся - PullRequest
1 голос
/ 16 сентября 2009

ASP.NET MVC Page имеет одну ссылку (Ajax.ActionLink), которая получает форму для создания и помещает ее в один из элементов div. Я вижу форму в div, но ни один из возвращенных JavaScript не выполняется. Я использую проверку JQuery, и мне нужно запустить validate () в форме, чтобы проверенная форма возвращалась из запроса AJAX.

Есть какие-то настройки или трюки, которые мне не хватает?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 октября 2010

Если вы используете jQuery, просто замените Sys.Mvc.MvcHelpers.updateDomElement вашей собственной реализацией.

(function ($) {
    if (Sys && Sys.Mvc && Sys.Mvc.MvcHelpers) {

        Sys.Mvc.MvcHelpers.updateDomElement = function My$updateDomElement(target, insertionMode, content) {
            /// <param name="target" type="Object" domElement="true">
            /// </param>
            /// <param name="insertionMode" type="Sys.Mvc.InsertionMode">
            /// </param>
            /// <param name="content" type="String">
            /// </param>
            if (target) {
                var $target = $(target);
                switch (insertionMode) {
                    case Sys.Mvc.InsertionMode.replace:
                        $target.html(content);
                        break;
                    case Sys.Mvc.InsertionMode.insertBefore:
                        if (content && content.length > 0) {
                           $target.prepend(content);
                        }
                        break;
                    case Sys.Mvc.InsertionMode.insertAfter:
                        if (content && content.length > 0) {
                            $target.append(content);
                        }
                        break;
                }
            }
        }
    }
})(jQuery);

Поскольку jQuery правильно обрабатывает теги скрипта, это должно решить вашу проблему.

0 голосов
/ 16 сентября 2009

Есть 2 способа заставить его работать сейчас.

  1. Используйте JQuery $ .get и замените HTML, возвращенный в div. Сейчас он выполняет сценарий для меня.
  2. Другой вариант - удалить UpdateTargetId и ReplaceMode из AjaxOptions и использовать обратный вызов для замены html в тег div.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...