Добавить CSS и JS в AJAX-загруженный PartialView - PullRequest
0 голосов
/ 04 июля 2011

Я нашел много ответов на подобные темы, но все они относятся к PartialViews, загруженным не AJAX, где решения, например, HtmlHelpers или Head section, но это не работает, когда я загружаю PartialView с помощью AJAX.

Я хочу добавить таблицу стилей CSS и JS-скрипт в AJAX-загруженный PartialView.Теперь я закодировал его в PartialView, и он работает, но это не очень хорошее решение (включая скрипты и таблицы стилей внутри тела).

Ответы [ 3 ]

0 голосов
/ 04 июля 2011

Если вы загружаете PartialView только один раз на страницу, проблем не должно быть, включая скрипты и CSS в теле. Как сказал Адам, если вы включаете HTML-форму динамически, вам просто нужно сообщить об этом jQuery, см. Здесь Проверка ASP.Net MVC 3 на стороне клиента с динамической формой

Однако, если вы хотите включить один и тот же PartialView на страницу несколько раз и не хотите загружать скрипт несколько раз. Тогда есть динамические загрузчики скриптов, которые вы можете использовать:

  • Вы можете вызвать только одну из вашей главной страницы, когда вы загружаете AJAX, чтобы он был включен только один раз
  • Включите проверку, чтобы убедиться, что один и тот же скрипт не загружается несколько раз.
0 голосов
/ 04 июля 2011

Я не знал, что ранее использование тега script внутри тела не является злом.Так что не все так плохо, я сначала подумал.

Я реализовал две функции в cssLink.js, которые я включил в заголовок:

/// <reference path="../jquery-1.4.4.js" />

function addCssLink(link) {
    var _cssLink = '<link rel=\"stylesheet\" href=\"' + link + '\" type=\"text/css\" />';
    $head = $('head');
    $link = $('link[href=' + link + ']', $head);
    if ($link.length == 0) {
        $head.append(_cssLink);
    }
}

function removeCssLink(link) {
    $('head link[href=' + link + ']').remove();
}

, и я использую эти функции в PartialViews:

<script type="text/javascript">
    $(document).ready(function () {
        $('#sideMenu').tabs('#content', '#content > *');
        addCssLink('/Content/SideMenu.css');
    });
</script>

<script type="text/javascript">
    $(document).ready(function () {
        removeCssLink('/Content/SideMenu.css');
    });
</script>

Спасибо, ребята, за помощь, я думаю, что информация о проверке должна быть полезной для меня позже:)

0 голосов
/ 04 июля 2011

Все должно работать нормально, кроме проверки.Вам нужно сообщить jQuery о вашем новом контенте, чтобы проверить его.См. ASP.Net MVC: Можно ли использовать аннотации / проверку данных с вызовом AJAX / jQuery?

...