我如何为asp.net页面创建扩展方法

时间:2011-11-27 14:42:07

标签: c# asp.net

如何在Asp.net mvc中创建类似“Html.DisplayTextFor”的扩展方法?我的意思是我需要在asp.net中为我的页面类扩展,比如“Page.DisplayTextFor”我如何实现它。我创造了这个:

    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*/
            }
        }
    }

但它不起作用。

2 个答案:

答案 0 :(得分:4)

我认为你的意思是你想扩展Page类,添加你自己的函数,以便在使用this.Page...时显示?

如果是这样,请首先将PageExtension类作为您自己的命名空间的一部分。然后语法是:

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

扩展方法first参数定义要扩展的类,其余参数定义调用时发送的内容。

要从您的页面中调用上述内容,请执行以下操作:

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

答案 1 :(得分:0)

您需要在System.Web.UI.Page类中选择一个现有属性来扩展,或者创建您自己的属性(在基类中)和您自己的类。