Как вы, ребята, справились с работой с jQuery, включая
<script type = "text/javascript" src = "jquery.js"></script>
в Asp.Net MVC при работе с частичными представлениями / элементами управления просмотром? По сути, я не хочу, чтобы jquery включался на главную страницу, потому что я не использую jquery во всех своих представлениях, но мне также нужен простой способ, чтобы пользовательский элемент управления мог создавать jquery, включаемый справа location ('head') без создания дубликатов jquery включает.
Лучшим способом было бы использовать ScriptManaager, но я не хочу полагаться на ASP.Net Ajax для этого в своем приложении. Есть ли «легкий» ScriptManager, который я мог бы использовать, который также разрешил бы недавно выпущенный intellisense для jquery?
Я создал WebControl, который предоставляет эту функциональность, но у меня нет поддержки intellisense для VS2008, которая мне бы очень понравилась.
Надеюсь, это имеет смысл.

Вы всегда могли сделать это:
сделайте легкий файл util.js, который есть на каждой странице, в него вы можете поместить различные общие вещи, а также следующее:
function loadJSInclude(scriptPath, callback)
{
var scriptNode = document.createElement('SCRIPT');
scriptNode.type = 'text/javascript';
scriptNode.src = scriptPath;
var headNode = document.getElementsByTagName('HEAD');
if (headNode[0] != null)
headNode[0].appendChild(scriptNode);
if (callback != null)
{
scriptNode.onreadystagechange = callback;
scriptNode.onload = callback;
}
}
Затем, по вашему мнению, просто поместите:
<script type='text/javascript'>
if (typeof(someJqueryObject) == "undefined")
loadJSInclude('jquery.js', doYourStuff);
else
doYourStuff();
function doYourStuff()
{
// jQuery will be loaded now, so you can do your stuff here.
}
</script>
Не знаю, как это сделать с частичным просмотром, хотя вы можете делать это постранично, используя существующие технологии.
Вы можете создать ContentPlaceHolder на своей главной странице внутри тега head. Затем в ваших пользовательских элементах управления просто поместите jQuery include в область содержимого ContentPlaceHolder ваших страниц.
Если вы используете JQuery на большом проценте своих страниц, я бы просто поместил его на главную страницу. Он будет загружен только один раз, после чего будет кеширован в браузере и окажет незначительное влияние на производительность при рендеринге вашей страницы.
Ах, попытка опубликовать это сводит меня с ума, потому что это рассматривается как часть страницы ... но
<script src = "<%=Url.Content("~/Content/js/jquery-1.2.3.min.js") %>" type = "text/javascript"></script>
но вы не получите хороший intellisense с этим