让Styles.Render()保留Razor模板的缩进?

Rob*_*Rob 4 asp.net indentation razor asp.net-mvc-4 bundling-and-minification

我对所有标记的可读性(以及因此缩进)略显痴迷.

当我调用@Styles.Render("~/content/css")ASP.NET MVC4项目时,只有第一行保留了我的Razor模板的缩进.

这是输出:

    <link href="/Content/css/ie.css" rel="stylesheet"/>
<link href="/Content/css/1140.css" rel="stylesheet"/>
<link href="/Content/css/screen.css" rel="stylesheet"/>
<link href="/Content/css/compatibility.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

我希望所有生成的标记都具有与@Styles.Render()调用相同的缩进.

这很容易吗?如果是这样,怎么样?

Mik*_*Dev 6

理想情况下,渲染的HTML将被缩小.格式化标记在开发过程中非常棒,但如果这是您为用户提供的文件,则会生成更大的文件.

您看到四个样式表的唯一原因是您在调试环境中运行,该环境已禁用您的捆绑.正如我在后解释说," Scripts.Render使用过时的JavaScript文件 "如果您添加BundleTable.EnableOptimizations = true;到您的底部RegisterBundles在你的BundleConfig,它会强制捆绑工作(因为它会在释放模式),你会看到这个:

    <link href="/Content/css/ie.css" rel="stylesheet"/>
<link href="/Content/css/1140.css" rel="stylesheet"/>
<link href="/Content/css/screen.css" rel="stylesheet"/>
<link href="/Content/css/compatibility.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

现在呈现为:

    <link href="/Content/css?v=Sn3f8Vf56Sr9k0EreIZnouVoGt2cfrd41" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

所以是的,在开发过程中,它不是在维护你的缩进,但是一旦你发布它就会是你想要的.