Вы можете написать собственный вспомогательный метод, который на основе параметра строки запроса добавит заданное имя класса к некоторому div. Тогда, конечно, у вас будут разные определения классов в вашем CSS-файле с применением background-image.
Например:
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')
}