2010-07-21 6 views
0

을 함께 사용하면 Html.StyleSheet을 사용하여() 도우미 내가 MVCContrib의 최신 버전을 사용하여 다음과 같은 헬퍼 메소드를 통해 스타일 시트를 포함하도록 시도하고 잘못된 경로를 렌더링 잘못 계산 :MVCContrib T4MVC

<link type="text/css" rel="stylesheet" href="/content/css/Content/Site.css" /> 

실제 경로가 있어야한다 : /Content/Site.css

이 버그인가요?

다음의 방법이 제대로 작동 :

METHOD 1 <%=Html.Stylesheet("~/Content/Site.css")%>

방법 2 : <link type="text/css" rel="stylesheet" href="<%:Links.Content.Site_css %>" />

UPDATE 1 :

Links.Content.Site_css 인 정적 필드를 나타낸다 T4MVC를 사용하여 자동 생성

업데이트 2 : 여기 가 T4MVC에 의해 생성 된 코드는 모습입니다 ...

namespace Links { 

    ...snipped for brevity... 

    [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] 
    public static class Content { 
     private const string URLPATH = "~/Content"; 
     public static string Url() { return T4MVCHelpers.ProcessVirtualPath(URLPATH); } 
     public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(URLPATH + "/" + fileName); } 

     public static readonly string Site_css = Url("Site.css"); 
} 
+0

무엇이'Links.Content.Site_css'입니까? 상수? 들판? 다른 것? 가치는 무엇입니까? –

+0

Darin, Links.Content.Site_css에 대한 설명은 업데이트 된 질문을 참조하십시오 – Rokal

+0

'Links.Content.Site_css'의 실제 가치는 무엇입니까? "~ /"로 시작하면 자동 경로 지정이 사용되지 않습니다. 도우미가 올바르게 작동하게하려면'Site.css'와 같아야합니다. – Ryan

답변

2

하지 버그. 이것은 예상대로 작동합니다. (그들은 더 이상 "~"가없는 의미)을 해결 한 상대 경로는 Using MvcContrib ScriptInclude, Stylesheet, And T4MVC

에 T4MVC 링크의 출력을 참조한다. MVC Contrib Helpers는 URL에 전달 된 "~"이 없다면 스크립트에 "~/Scripts /"또는 스타일에 "~/content/css/'"를 앞에 붙입니다. "~/Content"폴더 아래에 스크립트, 스타일 및 이미지를 이동 한 것을 확인하면이 작업을 수행 할 수있는 MVC Contrib HTML Helpers에 몇 가지 변경 사항이 있습니다 ... 경로를 정의하는 일종의 메커니즘 제공 "~"가없는 경우 스크립트 및 스타일 앞에 붙임 경로 정보를 앞에 붙이지 않는 또 다른 옵션으로 HTML 도우미를 재정의하십시오. 경로를 앞에 붙여야하는지 결정할 때 "~"대신 "/"를 검색 할 수 있습니다 URL은

+0

응답 해 주셔서 감사합니다. 언급했듯이이 문제는 Html.ScriptInclude() 도우미에서도 발생합니다. 이것은 MVCContrib와 T4MVC (MVCContrib의 일부) 사이의 불일치처럼 보입니다. 이것은 향후 릴리스에서 고려해야 할 사항입니다. – Rokal