mvc4 agrupando pacotes fortemente tipados
Então o MVC 4 introduz o script e o estilo de empacotamento. O que permite isso:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/mobile").Include(
"~/Scripts/jquery.mobile-*"));
então usado em uma visão de navalha como esta:
@Scripts.Render("~/bundles/mobile")
Minha pergunta é por que tenho que digitar"~/bundles/mobile"
? Existe uma maneira de obter intellisence para ter um objeto fortemente tipado para pegar? Caso contrário, eu tenho que procurar para ter certeza de que eu chamo a mesma coisa.
Eu gostaria de fazer algo assim: (Eu sei que isso não vai compilar dessa maneira, é apenas um exemplo)
public static void RegisterBundles(BundleCollection bundles)
{
Bundle mobile = new Bundle("mobile");
mobile.AddFile("w/e")
bundles.Add(mobile);
//in page:
@Scripts.Render(BundleConfig.mobile)
ou algo para esse efeito.
Editar: a resposta é tão simples. Como@Hao Kung
aponta@Styles.Render
simplesmente pega um caminho de string url. Eu criei uma classe para manter os pathes.
public class bundles
{
#region Javascript
public static string scripts = "~/bundles/scripts";
...
#endregion
#region CSS
public static string css = "~/Content/css";
public static string jqueryUi = "~/Content/themes/base/css";
...
#endregion
}
em qualquer página, então você simplesmente faz
@Styles.Render(bundles.jqueryUi)
aí está você. Um pequeno esforço extra de sua parte, mas pelo menos é fortemente digitado agora.