将页面名称传递给函数(ASP.Net)

时间:2013-11-19 22:38:52

标签: c# asp.net vb.net

我有一个例程,可以找到页面上的所有控件,然后我会对其进行一些更改。 该例程运行良好,但我必须将每个代码块添加到每个母版页和内容页面以获得我的结果。

我想创建一个子例程(它将在一个模块中),当从每个页面调用时,它将执行工作。我认为我需要做的唯一事情就是能够将控件所在的页面名称传递给子例程来运行我的例程并让模块对我通过的页面进行更改。它。

我确信这是一个简单的过程,但对于我的生活,我无法解决这个问题。有人可以帮助我如何传递页面名称,以便例程将更改应用于该页面? 我在Visual Studio 2010中使用asp.net,后面的代码是vb.net。

我的例程写在后面的代码中,而不是java或aspx。我不在乎答案是在C#还是vb.net,因为我可以根据需要进行转换。 提前致谢 克里斯

2 个答案:

答案 0 :(得分:0)

当你从模块中调用它时,可以将this.Page.UniqueID值作为参数发送给子程序。

答案 1 :(得分:0)

如果您想使用当前页面的类名:

this.GetType().Name;



如果您的网页继承自其他网页,您可以使用:

this.GetType().BaseType.Name;



我要做的是创建一个所有网页都继承的基页,并将FindAllControls()方法放在那里。


以下是一个可能的示例:

using System.Web.UI;

public abstract class BasePage : Page
{
    public void FindAllControls()
    {
        var currentClassName = this.GetType().BaseType.Name;

        // Do stuff.
    }
}


然后,例如,如果您有一个登录页面,它将如下所示:

using System;

public partial class Login : BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.FindAllControls();
    }
}