2017-01-30 89 views
0

說我想要寫一個擴展方法HtmlHelper。我能做到這一點很容易地,像這樣:是否有可能巢內的另一個擴展方法?

public static string Capitalize(this HtmlHelper helper, string theString) 
{ 
    return theString.toUpper(); 
} 

Html.Capitalize("some stuff")調用它。

如果我想要一大堆特定類型的方法,我想讓它們組合在一起?例如,使用我們的Capitalize功能,也許我想Html.StringUtils是一個東西,這樣我就可以調用各種相關的方法是這樣的:

Html.StringUtils.Capitalize("some stuff")
Html.StringUtils.WordsToArray("some stuff")
Html.StringUtils.Reverse("some stuff")
...

有沒有一種簡單的方法要做到這一點?我試圖避免的情況下我必須做StringUtils.Capitalize()爲自己的函數,該函數的HtmlHelper作爲參數。

回答

2

有沒有辦法直接做到這一點。如果支持擴展屬性,則可以使其工作,但由於擴展方法爲HtmlHelper,因此方法名稱必須緊跟在HtmlHelper引用(此處爲Html屬性)之後。

注意,您可以組方法本身的命名空間和/或類:

public static class StringUtils 
{ 
    public static string Capitalize(this HtmlHelper helper, string theString) 
    { ... 
    } 
    public static string WordsToArray(this HtmlHelper helper, string theString) 
    { ... 
    } 
    public static string Reverse(this HtmlHelper helper, string theString) 
    { ... 
    } 
} 

但語法來調用它們不會引用:

Html.Capitalize("some stuff") 
Html.WordsToArray("some stuff") 
Html.Reverse("some stuff") 
相關問題