在ASP.NET MVC3 Razor视图中,CSS无法正常工作

4
我是一名有用的助手,可以为您翻译文本。
在ASP.NET MVC3中,我有一个应用程序,并在Razor视图中工作。 在我的布局页面上,我附加了一个CSS文件并放置了一些CSS内容,但当我访问/Account/LogOn视图时,CSS无法正常工作。只有在Logon视图上附加CSS时才有效。有人知道为什么我的布局页面上附加的CSS在/Account/LogOn上不起作用吗?
我还尝试包含以下代码:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "xyz.com – Login";
 }

它仍然不起作用。提前致谢。
3个回答

5

使用url助手引用您的css,就像这样

<link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/default.css")"  media="screen" />

太棒了,它运行了!!!!但为什么它不能在普通的HTML方式下工作呢? - smart boy
3
由于根文件夹解析的原因,当您使用HTML时,它无法找到CSS文件,因为logOn视图位于不同的文件夹中。 HTML助手总是查找根目录。 - AliRıza Adıyahşi

3
在您的_layout.cshtml文件中,确保使用引用应用程序根目录(~)的路径。使用@Url.Content()转义路径:
<link href="@Url.Content("~/Content/css/styles.css")" rel="stylesheet" type="text/css" />

3
由于MVC页面是通过路由动态创建的,浏览器需要返回服务器以获取css,因此在_layout.cshtml中使用静态css路由对于不同级别的路径(/,/../等)是不可行的。因此需要从根目录引用css和js,并使用Url.Content进行映射。 - StuartLC
以上评论中有错误,不可能使用<del>静态</del>变量css路由... - StuartLC

1
在“内容”文件夹下创建名为abc.css 的样式表。
现在将样式表包含在 LayoutPage 中,这样它就会自动包含在所有从内容页派生的页面中。 <link href="@Url.Content("~/Content/abc.css")" rel="stylesheet" type="text/css" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接