不明白为什么它不工作..我使用该属性将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
{
我做错了什么?
答案 0 :(得分:2)
您正在创建新实例:
loginPage lp = new loginPage();
新实例将每个属性设置为其默认值。对于布尔值,即false
。
如果您在其他地方将其设置为true
,那么由于您没有查看该实例,因此无所谓。
它就像在一张纸上画画,然后拿另一张纸,想知道为什么没有画画。除非您正在查看同一张纸,否则您无法预期会有图纸。
因此,您需要在某处保存对象实例,以便在CheckAvailablePrograms
方法中再次使用它。正如Alex Kudryashev所提到的,你可以将它保存为Session
变量,尽管它不是唯一的方法。如果您愿意,可以在此处详细了解Session
对象:https://msdn.microsoft.com/en-us/library/ms178581.aspx