无法在aspx上检测到cs文件中的C#参数

时间:2011-03-10 19:57:58

标签: c# .net variables parameters sessionid

所以我对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

我想知道我做错了什么......

5 个答案:

答案 0 :(得分:2)

yes是一个局部变量;它不存在于Page_Load方法之外 您需要在代码隐藏中创建public(或protected)属性。

答案 1 :(得分:1)

如果您使yes成为受保护的类级变量,它将起作用。 ASPX页面是一个单独的类,它继承自代码隐藏中定义的类。

答案 2 :(得分: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
            {
            }
        }
    }

希望有所帮助

答案 3 :(得分:0)

您在if块中声明yes - 这是变量的范围。一旦代码执行退出if块,您的yes变量将排队等待垃圾回收,您将无法访问它。

解决此问题的一种方法是在页面的类级别声明公共属性Yes,您可以在Page_Load方法中设置该属性。然后你应该能够在.aspx中访问它。例如:

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

答案 4 :(得分:0)

yes位于Page_Load的本地 无论是对某个领域推广是还是更好,都可以使用私人制定者将其作为您班级的公共财产:

public bool Yes { get; private set; }