【问题标题】:mvc4 bundling strongly typed bundlesmvc4 捆绑强类型捆绑包
【发布时间】:2012-06-21 17:21:31
【问题描述】:

所以 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)

或有影响的东西。

编辑:答案很简单。正如@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)

你有它。您需要付出一些额外的努力,但至少现在是强类型的。

【问题讨论】:

    标签: asp.net-mvc-4 strong-typing bundling-and-minification asp.net-optimization


    【解决方案1】:

    Render Scripts/Styles 渲染助手不限于渲染对包的引用,它们会解析任何 url,因此助手检测您的意思是引用包的唯一方法是传入捆绑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 2012-10-15
      相关资源
      最近更新 更多