У меня возникли проблемы с установкой пути к jquery в приложении mvc. На моей главной странице объявлен скрипт, и jquery работает в корне моего приложения. Когда я перехожу на страницу просмотра содержимого в моем приложении, jquery не загружается должным образом. Нужно ли мне также установить путь на странице содержимого или объявить путь по-другому?
<script src = "Views/Scripts/jquery-1.2.6.min.js" type = "text/javascript"></script>





Src на главной странице является относительным, что не работает на дочерних страницах. Он должен работать, если вы объявляете путь как абсолютный (например, «/Views/Scripts/jquery-1.2.6.min.js»);
Да, конечно. Я просто пытался подтолкнуть его в правильном направлении.
Хотя использование абсолютного пути будет работать для некоторых установок, у вас возникнут проблемы при установке в подкаталогах. Более безопасное решение - использовать Url.Content, который всегда будет правильно определять путь:
<script src = "<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type = "text/javascript"></script>
Я бы предложил использовать вспомогательный метод
public static class Helper
{
private static string ScriptsRoot = "~/views/scripts/";
public static string ScriptUrl (string scriptFile)
{
return VirtualPathUtility.ToAbsolute (ScriptsRoot + scriptFile);
}
}
А затем ссылку на ваш скрипт следующим образом:
<script type = "text/javascript" src = "<%= Helper.ScriptUrl("jquery-1.2.6.min.js") %>"></script>
Поскольку вы находитесь на главной странице, вы можете использовать
<script src = "<%=ResolveUrl(~/Views/Scripts/jquery-1.2.6.min.js) %>" type = "text/javascript"></script>
ResolveUrl - это метод, унаследованный от Control. Таким образом, MasterPage, производный от Control, может его использовать.
Это предполагает, что ваше приложение всегда будет устанавливаться в корне сайта. Если он установлен в подкаталоге, он не будет работать.