2009-06-14 7 views
3

MVC 웹 응용 프로그램에서 HtmlHelper 클래스의 확장 메서드를 만들고 있습니다. 아무것도 표시되지 않고 기본 InputExtensions도 표시되지 않습니다.확장 메서드가 표시되지 않습니다.

public static class HtmlHelpers 
{ 
    public static void RegisterScriptInclude(this HtmlHelper htmlhelper, string script) 
    { 
     if (!RegisteredScriptIncludes.ContainsValue(script)) 
     { 
      RegisteredScriptIncludes.Add(RegisteredScriptIncludes.Count, script); 
     } 
    } 

    public static string RenderScripts(this HtmlHelper htmlhelper) 
    { 
     var scripts = new StringBuilder(); 
     foreach (string script in RegisteredScriptIncludes.Values) 
     { 
      scripts.AppendLine("<script src='" + script + "' type='text/javascript'></script>"); 
     } 
     return scripts.ToString(); 

    } 

    private static SortedList<int, string> RegisteredScriptIncludes 
    { 
     get 
     { 
      SortedList<int, string> value = (SortedList<int, string>)HttpContext.Current.Items["RegisteredScriptIncludes"]; 
      if (value == null) 
      { 
       value = new SortedList<int, string>(); 
       HttpContext.Current.Items["RegisteredScriptIncludes"] = value; 
      } 
      return value; 
     } 
    } 

} 

확장 메서드가 코드에도 표시되지 않습니다.

어디입니까?

답변

8

using 성명을 잊어 버렸습니까? 특히 using path.to.my.namespace; "확장 메서드를 얻으려면

3

다른 사람이이 게시물을 찾은 경우에 확인할 수있는 또 하나의 명백한 방법은 확장 메서드의 첫 번째 인수에서"this "키워드를 잊어 버리는 것입니다. 그것을 잊어 버리면, 컴파일러가 당신을 도울 수있는 방법이 많지 않습니다!

관련 문제