在我的_Layout.cshtml
文件中,我正在使用switch语句有条件地加载CSS文件。如果URL包含collA
或collD
,则加载New.css
。如果不是,则加载Old.css
。它正在工作,很高兴它。
我想对NewFooter
和OldFooter
做同样的事情,如果url中包含collA
,则加载新的,如果不包含,则加载旧的。
但是根据switch语句的位置,如果我有条件地加载任一页脚,则将它们放置在页眉上方。我希望页脚显示在页面底部。
最初我有第二个switch语句,有条件地将页脚加载到正确的位置,但是我只想使用one开关。
基本上,我想实现三件事:
- 我想使用加载CSS文件的相同switch语句有条件地加载
NewFooter
或OldFooter
- 我希望页脚加载到页面底部,而不是页眉上方
- 我只想使用一个switch语句
PS-我是ASP.NET和C#的新手,所以请记住我的语法很生疏。
<title>@ViewBag.Title</title>
@{
var keywords = new[] { "colls/collA", "colls/collD" };
var isNew = RenderPage("~/Views/Shared/NewFooter.cshtml");
var isOld = RenderPage("~/Views/Shared/OldFooter.cshtml");
switch (keywords.FirstOrDefault(Request.RawUrl.ToLower().Contains))
{
case "colls/collA":
case "colls/collD":
@Styles.Render("~/Content/New.css"); // CSS bundle
//@isNew; // the issue here is that the NewFooter renders above the header
break;
default:
@Styles.Render("~/Content/Old.css");
//@isOld;
break;
}
}
@Scripts.Render("~/bundles/jquery")
// other bundles here
...
...
...
<body>
@if (!Request.Browser.IsMobileDevice)
{
// navbar and body code
<div class="body-content">
@RenderBody()
// this is where the second switch statement used to be, where the new/old footers were rendered
</div>
...
...
...
</body>
您应该创建一个字符串actualURL
,然后在交换机内部分配它。您可以在页脚(在@RenderBody()
下面)中对其进行渲染。