Как я могу включать внешний файл JavaScript точно однажды на частичное представление?

У меня есть частичное представление (UserControl), который реализует простой пейджер у моего Asp. Сетевой проект MVC. Этому пейджеру нужен доступ к .js файлу, который должен быть включен точно однажды, независимо от того, сколько экземпляров управления пейджером присутствует на родительской странице.

Я попытался использовать Page.ClientScript.RegisterClientScriptInclude, но это не имело никакого эффекта (я принимаю, потому что самородок кода был оценен слишком поздно для влияния на главное управление). Есть ли какая-либо простая альтернатива?

5
задан Jon Seigel 16 April 2010 в 18:03
поделиться

3 ответа

Установите флаг в HttpContext.Current.Items , когда вы отправляете скрипт в своей части - это словарь, который сохраняется для всего запроса. Например: [

if (!HttpContext.Current.Items.Contains("SentTheScript"))
{
    HttpContext.Current.Items["SentTheScript"] = true;
    Response.Write(Html.ScriptTag("Script"));
}

] Таким образом, он будет отрисован не более одного раза.

2
ответ дан 14 December 2019 в 19:10
поделиться

Добавьте его на главную страницу.

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

2
ответ дан 14 December 2019 в 19:10
поделиться

Page.ClientScript.RegisterClientScriptInclude используется с традиционным ASP.net.

Поскольку вы используете asp.net-mvc, все, что вам нужно, это добавить директиву script файла js на страницу, которая использует этот пользовательский элемент управления.

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

1
ответ дан 14 December 2019 в 19:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: