我的网页表单包含一个网页控件和一个asp:HiddenField。我试图访问我的asxc.cs文件中的隐藏字段。我在我的aspx.cs文件中定义了一个public get,set block。在Web控件中,当我尝试调用ReportPage.TestID时,它无法识别Reportpage类。它是在webcontrol中访问HiddenField的正确方法吗?如果是这样,我应该如何访问ReportPage类?
public partial class ReportPage : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public int TestID
{
get
{
return Convert.ToInt32(TestIDHiddenField.Value);
}
set
{
TestIDHiddenField.Value = TestID.ToString();
}
}
}
答案 0 :(得分:-1)
由于Web Site compilation model,您无法直接从用户控件访问页面控件。简而言之,ASP.NET首先编译App_code
(其类在所有站点中都可见),然后是用户控件(.ascx
)以及使用该控件的.aspx
页面。
解决方法如下所示:
App_code
中创建一个抽象类(例如MyBasePage
),它继承自Page
类并在示例中添加抽象属性(TestID
),MyBasePage
的页面并实现该属性.ascx.cs
施放this.Page
作为MyBasePage
并使用您想要的属性。