使用IEnumerator在母版页中获取表单名称

时间:2014-05-22 07:29:04

标签: c# asp.net master-pages ienumerator

我想从呈现的HTML中获取表单名称。我已将aspx页面放在母版页中。我有以下代码,我将页面的名称作为参数传递。但是我的代码返回null,因为ctlEnumerator.Current显示了母版页名称。我应该在代码中做些什么更改来获取表单名称?提前谢谢。

private HtmlForm __getHtmlForm(System.Web.UI.Page page)  
{  
IEnumerator ctlEnumerator = page.Controls. GetEnumerator();  
while (ctlEnumerator.MoveNext())  
{  
object curr = ctlEnumerator.Current;  

if (curr is HtmlForm)  
{  
return ((HtmlForm)curr);  
}  
}  
return null;  
}   

1 个答案:

答案 0 :(得分:0)

所以你想获得当前页面的HtmlForm,你可以使用这个甚至不需要参数的静态方法:

public static System.Web.UI.HtmlControls.HtmlForm GetHtmlForm()
{
    var context = HttpContext.Current;
    if (context != null)
    {
        Page currentPage = context.CurrentHandler as Page;
        if (currentPage != null)
            return currentPage.Form;
    }
    return null;
}

现在你以这种方式在主人中得到它:

string currentFormName = GetHtmlForm().Name;