mvc4 комплектация сильно типизированных комплектов
Итак, в MVC 4 представлен скрипт и стилизация. Что позволяет для этого:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/mobile").Include(
"~/Scripts/jquery.mobile-*"));
затем используется в виде бритвы, как это:
@Scripts.Render("~/bundles/mobile")
У меня вопрос, почему я должен печатать"~/bundles/mobile"
? Есть ли способ получить интеллигентность, чтобы иметь сильно типизированный объект, чтобы взять на себя? В противном случае я должен пойти посмотреть, чтобы убедиться, что я называю это то же самое.
Я хотел бы сделать что-то вроде этого: (я знаю, что это не скомпилируется таким образом, это всего лишь пример)
public static void RegisterBundles(BundleCollection bundles)
{
Bundle mobile = new Bundle("mobile");
mobile.AddFile("w/e")
bundles.Add(mobile);
//in page:
@Scripts.Render(BundleConfig.mobile)
или что-то на это влияет.
EditОтвет так прост. Как@Hao Kung
указывает на то@Styles.Render
просто берет путь строки URL-адреса. Я создал класс для хранения патчей.
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
}
на любой странице, то вы просто делаете
@Styles.Render(bundles.jqueryUi)
там у вас есть это. Немного дополнительных усилий с вашей стороны, но, по крайней мере, это уже набрано.