Обикновено препращам към jQuery, използвайки:
<script src="@(Url.Content("~/JavaScript/jquery.maskedinput-1.2.2.js"))" type="text/javascript"></script>
Позовавам същото Jquery в много страници. Всяка промяна в статичното съдържание (име или номер на версията) изисква всички изгледи да се актуализират, за да поемат промяната. За да реша това, опитах да създам маршрути в файл Global.asax за Jquery като по-долу
routes.MapRoute("jquery.maskedinput.js", "Javascript/jquery.maskedinput-1.2.2.js");
и се опитах да го извикам в cshtml с помощта на Html Helper като по-долу
<script src="@Html.RouteLink("maskedinput","jquery.maskedinput.js") " type="text/javascript"></script>
Знам, че RouteLink връща маркер за котва и затова Източникът не е правилно настроен за зареждане на Jquery.
Изисквания:
- Има ли друг помощник на Html, който може да върне само виртуалния път (или)
- Трябва да посоча Jquery с име, а не с път. Пътя трябва да бъде деклариран някъде глобално, така че една промяна в глобален файл може да реши целта.
Помогнете ми моля.
Отговори:
2 за отговор № 1Използвам този метод за моя BundleCollection
с System.Web.Optimization
виждам въпросът ми, но това все още работи дори и с него.
namespace PROJECT.Classes
{
public class JSBundles
{
public static string Test = "/scripts/test.js";
}
след това го използвайте по следния начин:
<script src="@(JSBundles.Test)" type="text/javascript"></script>
което прави
<script src="/scripts/test.js" type="text/javascript"></script>
Имайте предвид, че това изисква препратка към вашето мнение PROJECT.Classes
или където и да го сложите. Имам тази настройка в моята web.config
в папката изгледи.
....
<add namespace="PROJECT.Classes" />
</namespaces>
</pages>
</system.web.webPages.razor>
1 за отговор № 2
Можете да използвате популярния и страхотен RequireJS, за да инжектирате jquery (и всякакви други js зависимости), като използвате JavaScript, вместо да ги обслужвате ръчно
http://requirejs.org/docs/jquery.html предоставя инструкции за настройка и употреба