2017-12-20 11 views
0

なぜそれが動作しないのか理解していません。私はActiveloginをtrueに設定して、別のページの値を取得してユーザにアクセス権があることを証明するプロパティを使用します。C#のプロパティが動作しない

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

あなたのActiveLoginをセッションに保存してください。 ( 'Session [" ActiveLogin "]') –

答えて

2

は、新しいインスタンスを作成している:新しいインスタンスは、すべてのプロパティがデフォルト値に設定されています

loginPage lp = new loginPage(); 

こと。ブール値の場合は、falseです。

trueに設定している場合は、そのインスタンスを見ていないので問題にはなりません。

これは紙の上に絵を描き、別の紙をとり、なぜそれに絵が描かれていないのだろうと思うようなものです。あなたは同じ紙を見ていない限り、そこに描画があるとは期待できません。

オブジェクトのインスタンスをどこかに保存して、CheckAvailableProgramsメソッドで再び使用できるようにする必要があります。 Alex Kudryashevが言及したように、Session変数として保存することができますが、これは唯一の方法ではありません。あなたが望むのであれば、Sessionオブジェクトの詳細を読むことができます:https://msdn.microsoft.com/en-us/library/ms178581.aspx

関連する問題