2011-03-10 52 views
0

所以我對aspx文件的條件:C#參數不能ASPX被檢測到

<% if (yes) 
    {%> 
    { 
<div> 
    <h1>hell yes!!</h1> 
    <p>Welcome</p> 
</div> 
<%}%>/ 

,這裏是我的頁面加載

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (accnt != null) 
    { 
     using (SqlConnection conn = new SqlConnection(connectionstring)) 
     { 
      conn.Open(); 
      string strSql = "select statement" 
         : 
         : 
      try 
      { 
       if (intExists > 0) 
       { 
        bool yes= check(accnt); 
       } 
      } 
      catch 
      { 
      } 
     } 
    } 

我獲取代碼錯誤:

CS0103: The name 'yes' does not exist in the current context 

我不知道我做錯了什麼......

回答

1

我的建議,把這個

public partial class _Default : System.Web.UI.Page 
{ 
    public string yes = ""; 

然後把

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (accnt != null) 
    { 
     using (SqlConnection conn = new SqlConnection(connectionstring)) 
     { 
      conn.Open(); 
      string strSql = "select statement" 
         : 
         : 
      try 
      { 
       if (intExists > 0) 
       { 
        bool yes= check(accnt); 
       } 
      } 
      catch 
      { 
      } 
     } 
    } 

希望它可以幫助

2

yes是一個局部變量;它不存在於Page_Load方法之外。
您需要在代碼隱藏中創建一個public(或protected)屬性。

+0

這是否意味着我可以除非我把它變成全局的,否則不會使用該變量來檢查狀態嗎? – gdubs 2011-03-10 20:02:03

+0

@gdubs:不是全局的實例級別。 – SLaks 2011-03-10 20:06:51

1

如果您製作yes受保護的類級變量,它將起作用。 ASPX頁面是一個獨立的類,它繼承自代碼隱藏中定義的類。

0

你聲明yes在if塊 - 這就是變量的作用域。一旦代碼執行退出if塊,您的yes變量將排隊進行垃圾回收,您將無法訪問它。

解決此問題的一種方法是在頁面的級別聲明一個公共屬性Yes,您可以在Page_Load方法中設置該屬性。那麼你應該能夠在.aspx中訪問它。例如:

public class MyPage : System.Web.UI.Page { 
    public bool Yes() { get; set; } 
} 
0

yes是本地Page_Load 要麼推動是一個字段或者更好的,讓你的類與私人二傳手的公共屬性:

public bool Yes { get; private set; }