2011-11-27 6 views
1

Asp.net mvc에서 "Html.DisplayTextFor"와 같은 확장 메서드를 어떻게 만듭니 까? 내 페이지 클래스에 asp.net에서 "Page.DisplayTextFor"와 같이 구현할 수있는 확장 기능이 필요하다는 뜻입니다. 나는 이것을 만들었습니다 :asp.net 페이지의 확장 메서드를 만들 수있는 방법

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 

    namespace System.Web.UI 
    { 
     public static class PageExtension 
     { 
      public static void DisplayTextFor(this string text) 
      { 
       /*some operation*/ 
      } 
     } 
    } 

그러나 작동하지 않습니다.

+0

:

는이, 당신의 페이지 내에서 위를 호출합니다. – CodesInChaos

+0

WebForms를 의미합니까? – SLaks

+0

나는 그것을 시스템 네임 스페이스에 넣지 않을 것이다. 너 자신의 것으로 써. 왜 이것이 문자열에 확장 기능을 만들지 않을지 모르겠다. 그래서 당신은''hi ''라고 쓸 수 있습니다 .DisplayTextFor()' – albertjan

답변

4

this.Page...을 사용할 때 자신의 기능을 추가하는 Page 클래스를 확장한다고 가정합니까?

그렇다면 자신의 네임 스페이스의 일부인 PageExtension 클래스를 먼저 가져야합니다. 그런 다음 구문은 다음과 같습니다.

public static void DisplayTextFor(this Page page, string text) 
{ 
    page.Response.Write(text); 
} 

확장 메서드 첫 번째 매개 변수는 확장 할 클래스를 정의하고 나머지 매개 변수는 호출시 보낼 내용을 정의합니다. 당신은 확장 매개 변수가 아닌 문자열로 Html 헬퍼 클래스를 사용할 필요가

this.Page.DisplayTextFor("hello world"); 
0

확장하려면 System.Web.UI.Page 클래스의 기존 속성을 선택하거나 기본 클래스에서 자신의 속성을 만들고 자신의 클래스를 만들어야합니다.

관련 문제