mvc4捆绑强类型的包(mvc4 bundling strongly typed bundles)

2019-07-30 01:19发布

所以MVC 4引入脚本和样式捆绑。 它允许这样的:

public static void RegisterBundles(BundleCollection bundles)
    {
    bundles.Add(new ScriptBundle("~/bundles/mobile").Include(
                    "~/Scripts/jquery.mobile-*"));

然后在这样的剃刀视图中使用:

@Scripts.Render("~/bundles/mobile")

我的问题是,为什么我必须键入"~/bundles/mobile" ? 有没有办法让intellisence有一个强类型的对象回暖呢? 否则,我必须去看看它,以确保我把它叫做同样的事情。

我愿做这样的事情:(我知道这不会编译这样,这只是一个例子)

public static void RegisterBundles(BundleCollection bundles)
    {
    Bundle mobile = new Bundle("mobile");
    mobile.AddFile("w/e")
    bundles.Add(mobile);

//in page:
 @Scripts.Render(BundleConfig.mobile)

或东西的影响。

编辑 :答案很简单。 作为@Hao Kung指出@Styles.Render只是需要一个URL字符串路径。 我创建了一个类来保存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
}

在任何页面,那么你只需做

@Styles.Render(bundles.jqueryUi)

你有它。 你的一点点额外的努力,但至少我们强烈现在输入。

Answer 1:

渲染脚本/样式渲染佣工不限于渲染引用捆绑,他们解决任何网址,所以助手的唯一方法来检测你的意思是引用一个包,是通过传递捆绑的虚拟路径。



文章来源: mvc4 bundling strongly typed bundles