从类后面的代码访问asp.net页面

时间:2013-01-09 18:52:53

标签: asp.net code-behind page-lifecycle

这是出于学术目的,请不要回答“为什么要这样做”

如果我有一个名为Home.aspx的页面,它在Home.aspx.cs后面有一个代码。

在Home.aspx.cs中我有一些公共属性,例如

public string Name { get; set; }

我有另一个名为Error.aspx的页面

我可以在Error.aspx.cs中创建Home.aspx.cs的实例并访问Name属性吗?如果没有,为什么不呢。

3 个答案:

答案 0 :(得分:1)

  

我可以在Error.aspx.cs和。中创建Home.aspx.cs的实例   访问Name属性?如果没有,为什么不呢。

是的,你可以......

答案 1 :(得分:1)

  

我可以在Error.aspx.cs中创建Home.aspx.cs的实例并访问Name属性吗?

是的,您可以创建实例,就像任何其他对象一样。你可以这样做:

Home h = new Home();
h.Name = "Hello;

但它是 新实例 ,它内部没有用户特定数据......换句话说: 它不是用户看到的“真实”页面的实例

我猜你的下一个问题是 - 如果我从Error页面进入Home页面,我可以访问这些属性吗?和简单的答案将是没有。

如果您想在页面之间传递数据,则应使用 Session 对象, Cache 或其他类似概念。

答案 2 :(得分:1)

如果您在用户被重定向到错误页面后尝试从主页上的控件获取值,您还可以尝试使用PreviousPage.FindControl()方法......

TextBox txt = (TextBox)Page.PreviousPage.FindControl("SomeText");

OR

string str = (TextBox)Page.PreviousPage.FindControl("SomeText").Text;

其中“SomeText”是您要读取的控件的ID值。