2013-04-24 5 views
1

Я использую ASP.NET MVC. У меня есть представление, которое загружает содержимое частичного представления в разделе.Динамически загружать файл сценария в ASP.NET MVC

Проблема в том, что частичный вид имеет в себе некоторые ссылки на скрипт. поэтому, когда я загружаю содержимое этого частичного представления на главной странице, теги скриптов удаляются, чтобы защитить просмотр от атак сценариев.

Я пробовал различные способы фильтровать теги сценариев из частичного содержимого страницы и загружать тему отдельно, но я не увенчался успехом.

Например, я пытался фильтровать тег сценария и добавить их в голове главной страницы, как это:

var scripts = $(content).filter('script'); 
$(scripts).each(function() { 
$('head').append($(this)); 

Я также попытался загрузить эти скрипты с помощью $ .getscript. Функция выполняется красиво, но они не отображаются в ресурсе страницы в инструментах разработчика Chrome. и я не могу использовать функции внутри этих скриптов.

как я могу это достичь ??

+0

Вы проверили, что это значение ' переменная scripts' после 'filter'? Нет ошибок в консоли? –

+0

«scripts» - это массив объектов сценария, и если вы помещаете «this.src» в оператор foreach, он дает вам полный скриптовый тег. При инъекции нет ошибок. – Pouyan

ответ

1

Вы можете переместить все ссылки скрипта на главном экране приложения, или вы можете использовать $ .ajax «DATATYPE, как сценарий», чтобы загрузить скрипт динамически:

http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests

$.ajax({ 
    dataType : 'script', 
    url : 'http://example.com', 
    success : function() { 
    console.log(a); 
    } 
}); 
+0

В вызове ajax, как должен выглядеть URL-адрес? Использование пути к файлу из BundleConfig («~/Scripts/app/UsageReport/AggregatedUsageReport.js») не работает, а также путь, который был в @ Scripts.Render («~/bundles/App/UsageReport»). Я не знаю, как включить URL-адрес, указывающий на местоположение файла javascript. – Patricia

+0

ОК. Я понял URL. Именно там файл существует относительно местоположения файла вида (url: «../../Scripts/app/UsageReport/AggregatedUsageReport.js») – Patricia

Смежные вопросы