Eu costumo referir um jQuery usando:
<script src="@(Url.Content("~/JavaScript/jquery.maskedinput-1.2.2.js"))" type="text/javascript"></script>
Eu refiro o mesmo Jquery em muitas páginas. Qualquer alteração no conteúdo estático (nome ou número da versão) requer que todas as visualizações sejam atualizadas para absorver a alteração. Para resolver isso, tentei criar rotas no arquivo Global.asax para Jquery como abaixo.
routes.MapRoute("jquery.maskedinput.js", "Javascript/jquery.maskedinput-1.2.2.js");
e eu tentei chamá-lo em cshtml usando um Html Helper como abaixo
<script src="@Html.RouteLink("maskedinput","jquery.maskedinput.js") " type="text/javascript"></script>
Eu sei RouteLink retorna uma marca de âncora e por isso a fonte não está corretamente definida para o jQuery para carregar.
Requisitos:
- Existe algum outro auxiliar Html que pode retornar apenas o virtual caminho (ou)
- Eu preciso referir Jquery com um nome não com um caminho. O caminho deve ser declarado em algum lugar globalmente para que uma única mudança na arquivo global pode resolver o propósito.
Ajude-me, por favor.
Respostas:
2 para resposta № 1Eu uso esse método para o meu BundleCollection
com System.Web.Optimization
Vejo minha pergunta, mas isso ainda funciona mesmo sem ele.
namespace PROJECT.Classes
{
public class JSBundles
{
public static string Test = "/scripts/test.js";
}
então use-o assim:
<script src="@(JSBundles.Test)" type="text/javascript"></script>
que processa
<script src="/scripts/test.js" type="text/javascript"></script>
Note que isso requer uma referência na sua opinião para PROJECT.Classes
ou onde quer que você coloque. Eu tenho essa configuração na minha web.config
na pasta de visualizações.
....
<add namespace="PROJECT.Classes" />
</namespaces>
</pages>
</system.web.webPages.razor>
1 para resposta № 2
Você poderia usar o popular e incrível RequireJS para injetar jquery (e quaisquer outras dependências js) usando javascript ao invés de servi-los manualmente
http://requirejs.org/docs/jquery.html fornece instruções de configuração e uso