2011-11-27 63 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类来扩展,或者创建自己的属性(基类)和你自己的类。