쿼리 문자열 매개 변수를 기반으로 특정 클래스 이름을 일부 div에 추가하는 사용자 지정 도우미 메서드를 작성할 수 있습니다. 그럼 물론 배경 이미지를 적용하는 CSS 파일에 다른 클래스 정의가 있어야합니다.
<div class="@Html.BannerClass()">OK</div>
항상 적용됩니다이 방법 : 당신의 _Layout
당신이 사업부 또는 몸처럼 어떤 자리에이 클래스를 적용 할 수에서 다음
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";
}
}
를 실행 한 다음, 예를 들어
애플리케이션의 모든 뷰.
지금 남아있는 그 모두가 다른 배너 대한 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')
}
감사합니다. 하지만 이것은 현재 url에서만 작동하는 것 같습니다. 같은 쿼리 문자열을 포함하도록 모든 링크를 변경해야합니다. 내가 querystring을 유지할 수있는 방법이 있습니까? – StarCub
nevermind, 세션에 저장하고 세션이 null인지 확인합니다. – StarCub