您可以编写一个基于查询字符串参数的自定义帮助器方法,将给定的类名附加到某个div。那么当然你会在应用背景图像的CSS文件中使用不同的类定义。
例如:
public static class HtmlExtensions
{
public static string BannerClass(this HtmlHelper html)
{
var bg = html.ViewContext.Controller.ValueProvider.GetValue("bg");
if (bg == null || string.IsNullOrEmpty(bg.AttemptedValue))
{
// no bg parameter => return a default class
return "default_banner";
}
if (string.Equals("a", bg.AttemptedValue))
{
return "banner_a";
}
else if (string.Equals("b", bg.AttemptedValue))
{
return "banner_b";
}
// unknown value for the bg parameter => return a default class
return "default_banner";
}
}
,然后在_Layout
,可以将这个类适用于一些占位像一个div甚至身体:
<div class="@Html.BannerClass()">OK</div>
这样,它总是会申请所有视图都在你的应用程
现在,所有剩下的就是定义你的CSS规则的不同横幅:
.default_banner {
background-image: url('../images/default_banner.png')
}
.banner_a {
background-image: url('../images/banner_a.png')
}
.banner_b {
background-image: url('../images/banner_b.png')
}
感谢。但这似乎只适用于当前的网址。我需要更改所有链接以包含相同的查询字符串。有什么办法可以坚持querystring? – StarCub
没关系,我意识到我可以将它保存在会话中,并检查会话是否为空。 – StarCub