Zazwyczaj polecam jQuery za pomocą:
<script src="@(Url.Content("~/JavaScript/jquery.maskedinput-1.2.2.js"))" type="text/javascript"></script>
Odnoszę tę samą Jquery na wielu stronach. Każda zmiana w treści statycznej (nazwa lub numer wersji) wymaga zaktualizowania wszystkich widoków w celu uwzględnienia zmiany. Aby rozwiązać ten problem, próbowałem utworzyć trasy w pliku Global.asax dla pliku Jquery, jak poniżej
routes.MapRoute("jquery.maskedinput.js", "Javascript/jquery.maskedinput-1.2.2.js");
i próbowałem wywołać go w cshtml przy użyciu Pomocnika HTML jak poniżej
<script src="@Html.RouteLink("maskedinput","jquery.maskedinput.js") " type="text/javascript"></script>
Wiem, że RouteLink zwraca tag zakotwiczenia, więc źródło nie jest poprawnie ustawione do załadowania Jquery.
Wymagania:
- Czy jest jakiś inny pomocnik HTML, który może zwrócić tylko wirtualny ścieżka (lub)
- Muszę odwoływać się do Jquery z nazwą nie ze ścieżką. Ścieżka należy zadeklarować gdzieś na całym świecie, aby jedna zmiana w plik globalny może rozwiązać cel.
Pomóż mi proszę.
Odpowiedzi:
2 dla odpowiedzi № 1Używam tej metody dla siebie BundleCollection
z System.Web.Optimization
widzieć moje pytanie, ale nadal działa to bez niego.
namespace PROJECT.Classes
{
public class JSBundles
{
public static string Test = "/scripts/test.js";
}
następnie użyj go w ten sposób:
<script src="@(JSBundles.Test)" type="text/javascript"></script>
który renderuje
<script src="/scripts/test.js" type="text/javascript"></script>
Pamiętaj, że wymaga to odniesienia do twojego widoku PROJECT.Classes
lub gdziekolwiek to umieścisz. Mam tę konfigurację w sobie web.config
w folderze widoków.
....
<add namespace="PROJECT.Classes" />
</namespaces>
</pages>
</system.web.webPages.razor>
1 dla odpowiedzi nr 2
Możesz użyć popularnego i niesamowitego RequireJS do wstrzykiwania jquery (i wszelkich innych zależności js) za pomocą javascript zamiast obsługiwać je ręcznie
http://requirejs.org/docs/jquery.html zawiera instrukcje konfiguracji i użytkowania