Asp.Net MVC Razor,结合了全球和本地* .css

时间:2016-04-18 19:18:06

标签: css asp.net-mvc razor

我得到了global.css&#39;在我的布局&#39;中引用了通过@Url.Content(path_to_css_file)。然后我想要我的一些观点来包含他们自己的* .css。实现这一目标的正确方法是什么?我已经尝试了<style></style>每个视图,但这似乎与最佳解决方案相距甚远,不是吗?

2 个答案:

答案 0 :(得分:0)

除了您的布局页面之外,我建议您使用ViewBag添加您的视图。

添加如下内容:

@if (ViewBag.LayoutStyle != null)
{
    <link href="@ViewBag.LayoutStyle" rel="stylesheet"/>
}

在global.css之后的布局文件中以及要在全局样式后添加第二个css文件的视图中,只需将ViewBag.LayoutStyle值设置为css文件的URL。

通过这种方式,您将有机会使用全局css文件,并根据您正在加载的视图,您可以根据您的视图加载覆盖全局css的不同css文件。

答案 1 :(得分:-1)

最好的方法是使用bundle来引用样式和脚本。 所以在App_Start文件夹中的BundleConfig类中添加:

 alert("Hello! I am an alert box!!");
 function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#blah')
                    .attr('src', e.target.result)
                    .width(150)
                    .height(200);
            };

            reader.readAsDataURL(input.files[0]);
        }
    }

然后在你的_Layout.cshtml bundles.Add(new StyleBundle("~/Content/myglobalcss").Include( "~/Content/global.css" )); bundles.Add(new StyleBundle("~/Content/mylocalcss").Include( "~/Content/local.css" )); 标签中写下这一行:

<head>

例如在Index.cshtml视图中添加此行

@Styles.Render("~/Content/myglobalcss")

将在索引视图中专门呈现local.css。实际上,你可以在每个包中引用多个* .css文件,并在你需要的时候使用它们。