所以我对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
我想知道我做错了什么......
答案 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; }