不明白为什么它不工作..我使用属性将Activelogin设置为true然后获取另一页中的值以证明用户有权访问。
namespace Ibrax_1
{
public partial class loginPage : System.Web.UI.Page
{
public bool activelogin;
public bool Activelogin
{
get
{
return activelogin;
}
set
{
activelogin = value;
}
}
.
.
.
Activelogin = true; // here in a method im setting the value to true.
我在这里获得价值:
namespace Ibrax_1
{
public partial class Program : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CheckAvailablePrograms();
}
private void CheckAvailablePrograms()
{
loginPage lp = new loginPage();
if (lp.Activelogin) //here im getting the value but its false
{
我做错了什么?
您正在创建一个新实例:
loginPage lp = new loginPage();
该新实例将每个属性设置为其默认值。对于布尔值,那是false
。
如果你在其他地方将它设置为true
,那么因为你没有看那个实例就没关系了。
这就像在一张纸上画画,然后拿另一张纸,想知道为什么没有画画。除非你在看同一张纸,否则你不能指望有一幅画。
所以你需要在某处保存对象的实例,这样你就可以在CheckAvailablePrograms
方法中再次使用它。正如Alex Kudryashev所提到的,你可以将它保存为Session
变量,尽管它不是唯一的方法。如果您愿意,可以在这里阅读更多关于Session
对象的信息:https://msdn.microsoft.com/en-us/library/ms178581.aspx