C# cs文件上的C参数可以';无法在aspx上检测到

C# cs文件上的C参数可以';无法在aspx上检测到,c#,.net,variables,parameters,sessionid,C#,.net,Variables,Parameters,Sessionid,所以我对aspx文件有一个条件: <% if (yes) {%> { <div> <h1>hell yes!!</h1> <p>Welcome</p> </div> <%}%>/ 我得到一个错误: CS0103: The name 'yes' does not exist in the current context 我想知道我做错了什么…是的是一个局部变量;它不存

所以我对aspx文件有一个条件:

<% if (yes)  
   {%>
   {
<div>
    <h1>hell yes!!</h1>
    <p>Welcome</p>
</div>
<%}%>/
我得到一个错误:

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

我想知道我做错了什么…

是的
是一个局部变量;它不存在于
页面加载
方法之外。

您需要在代码隐藏中创建一个
public
(或
protected
)属性。

yes
是一个局部变量;它不存在于
页面加载
方法之外。

您需要在代码隐藏中创建一个
public
(或
protected
)属性。

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

如果将
yes
设置为受保护的类级别变量,则该类将起作用。ASPX页面是一个独立的类,它继承了代码隐藏中定义的类。

我的建议是

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
            {
            }
        }
    }

希望对你有所帮助我的建议是

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
            {
            }
        }
    }

希望它有帮助

您在if块中声明了
yes
——这是变量的作用域。一旦代码执行退出if块,您的
yes
变量将排队等待垃圾收集,您将无法访问它

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

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

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

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

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

yes
是本地加载的
Page\u
将“是”提升到某个字段,或者更好地使用私有setter将其作为类的公共属性:

public bool Yes { get; private set; }

yes
是本地加载的
Page\u
将“是”提升到某个字段,或者更好地使用私有setter将其作为类的公共属性:

public bool Yes { get; private set; }

那么这是否意味着我不能使用该变量检查状态,除非我将其设置为全局?@gdubs:Not global,instance-level。那么这是否意味着我不能使用该变量检查状态,除非我将其设置为全局?@gdubs:Not global,instance-level。