2011-11-27 61 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

您需要使用HtmlHelper類的擴展參數,而不是字符串。 – CodesInChaos

+0

你的意思是WebForms? – SLaks

+0

我不會把它放在系統名稱空間中。只要把它放在你自己的。我不明白爲什麼這不會在字符串上創建擴展函數。所以你可以寫''嗨「.DisplayTextFor()' – albertjan

回答

4

我假設你的意思是要延長Page類添加自己的功能使用this.Page...何時出現?

如果是這樣,先有PageExtension類作爲自己命名空間的一部分。那麼語法是:

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

擴展方法第一個參數定義擴展什麼課,其餘的參數定義你打電話時,送什麼。

要調用從上面的頁面中,剛好有:

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

你需要選擇一個現有的財產在System.Web.UI.Page類來擴展,或者創建自己的屬性(基類)和你自己的類。