2015-01-20 3 views
0

저는 ASP.NET C# 코드를 사용하여 웹 사이트에서 작업하고 있습니다.이 웹 사이트는 다양한 웹 사이트에 사용되며 '자리 표시 자'역할 만합니다. 우리는 방문하는 웹 사이트에 따라 다른 마크 업을 가질 수있는 CSS 코드를 갖고 싶어합니다. 우리는 데이터베이스에서 방문하는 웹 사이트에 대한 정보를 가져오고 있습니다.이 값에는 이러한 값을 반환하는 몇 가지 방법이 있습니다.CSS에서 C# 변수 사용

문제는 CSS 코드에서이 값을 사용할 수 있기를 원하며, 현재이 방법을 생각할 수있는 유일한 방법은 .css 파일 대신 인라인 CSS 코드를 사용하는 것입니다. 그러면 코드가 다음과 같이 보이게됩니다.

<style> 
    .navbar { 
     background-color: @Website.Models.WebsiteConfiguration.NavbarColor; 
    } 
</style> 

이상적인 것은 아닙니다. 인라인 코드를 사용하지 않고 CSS 코드에서 C# 변수를 사용하는 다른 방법이 있습니까? 나는 a website에 css 파일을 수정하기 위해 사용자 지정 처리기를 사용하는 방법을 설명했지만 파서가 호출되지 않았기 때문에이 기능을 사용할 수 없습니다. .LESS library도 있지만이 라이브러리를 사용하지 않고 대신 몇 줄의 코드 만 사용하는 솔루션에서 작업합니다.

+1

유일한 다른 방법 (less/some 다른 프리 컴파일러 제외)은 js에 설정하는 것이지만 다시 완벽하지는 않습니다. 확실하지 않지만 [** attr **] (https://developer.mozilla.org/en/docs/Web/CSS/attr)를 사용할 수 있습니까? – jbutler483

+0

현재 사용중인 웹 사이트에 따라 다른 CSS 파일을로드하는 것으로 생각하십니까? – Andy

+0

@Andy 그것은 불행히도, 프로젝트의 본질 때문에 전적으로 가능하지 않습니다. –

답변

1

CSS 파일을 렌더링하는 데 일종의 템플릿 언어를 사용할 수 있습니다. 그것에 대한 CSS의 자체 변수가 채워지지 않지만 템플릿 파일을 읽고, 변수를 채우고, 새 파일을 적절한 위치에 저장하고, 새 CSS 파일을 가리키는 올바른 스타일 요소를 페이지에 출력하는 유틸리티 클래스를 작성할 수 있습니다.

<% CssHelper.Load("myFile.template", "websitex/style.css")%>

그 실행 가능한 옵션이 될 것이다 : 적절한 CSS를 렌더링 할 다음과 같은 것을 가질 수

그 방법은?