2010-07-28 7 views
1

내 프로젝트의 System.Web.Mvc에 내 도우미를 추가했으며 기본 asp.net MVC 뷰 엔진과 함께 작동하도록했습니다.사용자 정의 HTML 도우미가있는 Spark View Engine

namespace System.Web.Mvc 
{ 
    public static class XSSHelper 
    { 
     public static string h(this HtmlHelper helper, string input) 
     { 
      return AntiXss.HtmlEncode(input); 
     } 

     public static string Sanitize(this HtmlHelper helper, string input) 
     { 
      return AntiXss.GetSafeHtml(input); 
     } 

     public static string hscript(this HtmlHelper helper, string input) 
     { 
      return AntiXss.JavaScriptEncode(input); 
     } 
    } 
} 

처럼 도우미를 정의함으로써 나는 내가이 작업을 얻이 수없는 것 스파크보기 엔진을 사용하고 이제

<%= Html.h("<h1>some string</h1>") %>를 사용하여 불렀다. 다음과 같은 오류 메시지가 나타납니다.

'System.Web.Mvc.HtmlHelper' does not contain a definition for 'h' and no extension method 'h' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found (are you missing a using directive or an assembly reference?)'

어떻게하면 추가 헬퍼를 볼 수 있습니까?

편집 : 나는 또한

답변

3

내 _global.spark는 일반적으로 내 프로젝트가 본격적으로 시작될 때까지 이렇게 보입니다. 이러한 문제를 피하려면 처음부터이 작업을 수행하는 것이 좋습니다.

<use namespace="Spark"/> 
<use namespace="System.Web.Mvc"/> 
<use namespace="System.Web.Mvc.Ajax"/> 
<use namespace="System.Web.Mvc.Html"/> 
<use namespace="System.Web.Routing"/> 
<use namespace="System.Linq"/> 
<use namespace="System.Collections.Generic"/> 

<use assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<use assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<use assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<use assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<use assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<use assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<use assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<use assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
0

System.Web.Mvc.HtmlHelper는 스파크 설정 섹션에서 당신의 Web.config에 등록되어 있는지 확인 아무 소용 <using namespace="myApp" />와 _global.spark 추가했습니다.

+0

수신 된 오류 "HtmlHelper는 네임 스페이스가 아닌 유형입니다." – jdiaz

0

<using namespace="System.Web.Mvc" /> _global.spark 파일에이 문제가 해결 된 것으로 보입니다.