mvc4 łączenie silnie typowanych pakietów
Tak więc MVC 4 wprowadza wiązanie skryptów i stylów. Co pozwala na to:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/mobile").Include(
"~/Scripts/jquery.mobile-*"));
następnie użyty w taki sposób jak brzytwa:
@Scripts.Render("~/bundles/mobile")
Moje pytanie brzmi: dlaczego muszę pisać"~/bundles/mobile"
? Czy jest jakiś sposób, aby intellisence miał silnie wpisany obiekt do odebrania? W przeciwnym razie muszę poszukać go, aby upewnić się, że nazywam to samo.
Chciałbym zrobić coś takiego: (wiem, że to się nie skompiluje, to tylko przykład)
public static void RegisterBundles(BundleCollection bundles)
{
Bundle mobile = new Bundle("mobile");
mobile.AddFile("w/e")
bundles.Add(mobile);
//in page:
@Scripts.Render(BundleConfig.mobile)
lub coś na to wpływa.
Edytować: odpowiedź tak prosta. Tak jak@Hao Kung
zwraca uwagę@Styles.Render
po prostu pobiera ścieżkę ciągu URL. Stworzyłem klasę do przechowywania 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
}
na każdej stronie po prostu to robisz
@Styles.Render(bundles.jqueryUi)
tam masz to. Trochę dodatkowego wysiłku z twojej strony, ale przynajmniej jest teraz mocno napisany.