Я только что переместил проект в бета-версию фреймворка ASP.net MVC, и единственная проблема, с которой я столкнулся, - это jQuery и jQueryUI.
Вот сделка:
В Site.Master есть следующие ссылки на скрипты:
<script src = "../../Scripts/jquery-1.2.6.js" type = "text/javascript"></script>
<script src = "../../Scripts/jquery-ui.js" type = "text/javascript"></script>
И с их помощью accordian UI, который у меня есть в одном из представлений, работает отлично, за исключением одной проблемы: изображения из ThemeRoller не включены на страницу. Если я закомментирую ссылки jQuery, там будут изображения ThemeRoller. Все css находятся в Content folder, а все скрипты - в Scripts folder.
Я знаю, что это глупая проблема с путями, но она заставляет меня дергаться.
Что мне не хватает?
Обновлять
Я попробовал первый ответ безрезультатно, подробности читайте в комментарии. Еще раз спасибо тем, кто просматривает.
Второй подход тоже не работает. Я сбит с толку.
Еще одно обновление
Использование тегов Url.Content для сценариев действительно позволяет сценариям работать правильно. При использовании обычного тега для таблицы стилей все стили помещаются на страницу, ЗА ИСКЛЮЧЕНИЕМ всех тех, которые связаны с ThemeRoller.
Файл jquery-ui-themeroller.css находится в папке Content, и когда я проверяю элемент, присутствует CSS. Я подозреваю, что проблема заключается в сопоставлении этого файла css с папкой изображений для themeroller, которая также находится в папке Content. Ссылки на изображения в этом файле указаны как: background: url(images/foo.gif)
Нужно ли менять ссылки в этом файле?

Если все ваши представления не находятся на одном уровне, вам нужно будет использовать
Url.Content () http://jvance.com/media/2008/10/18/UrlContent5.media
это помогает?
http://forums.asp.net/p/1334947/2690469.aspx
The reason for the inconstistency is very simple, though I admit it's not easy to figure out! When you have a <link> tag inside a <head runat = "server">, ASP.NET will process the <link> tag and detect URLs and resolve them relative to the application's root. When you have a <script> tag on the page (without runat = "server") then ASP.NET will leave it alone since it's just plain old HTML.
Using Url.Content() is the approach I would use to solve this since it'll get resolved relative to the app root, just like the <link> tag.
Это помогло мне лучше понять проблему и приблизиться к ней, но решение все еще находится вне пределов моей досягаемости.
Оказывается, проблема заключалась в том, что загруженная тема с ThemeRoller не работает сразу после установки. Спасибо за указатель на объяснение.
Вам нужно изменить ссылки в jquery-ui-themeroller.css, чтобы они указывали на текущее местоположение изображений.
Например, вам нужно обновить путь к изображениям, которые ищет файл css.
background: url(images/foo.gif)
Удалите 'images /' из ваших путей, чтобы он выглядел так:
background: url(foo.gif)
поскольку и ваш CSS, и изображения находятся в папке содержимого.
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptInclude(this.GetType(),"JQuery", ResolveUrl("~/js/jquery.min.js"));
Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "JQueryUI", ResolveUrl("~/js/jquery-ui.custom.min.js"));
Я попробовал вариант использования тега Url.Content, который изменил одну вещь: теперь, когда все раскомментировано, изображения отображаются, но jQueryUI не работает.