我试图从我的代码中编写变量,但我被告知"名称' X'在当前上下文中不存在。"
当我搜索此错误时,我发现它们应该在类级别声明为公共或受保护,我已经这样做了。
我尝试使用:
在default.aspx中编写变量<%=metaRedirect%>
或
<%#metaRedirect%>
我的default.aspx.cs如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace go
{
public partial class _default : System.Web.UI.Page
{
protected string message1 = "";
protected string url = "";
protected string shortCode = "";
protected string jsRedirect = "";
protected string metaRedirect = "";
protected void Page_Load(object sender, EventArgs e) {
//do stuff
}
}
编辑:我也尝试过像这样声明:
public partial class _default : System.Web.UI.Page
{
protected string message1 { get; set; }
protected string url { get; set; }
protected string shortCode { get; set; }
protected string jsRedirect { get; set; }
protected string metaRedirect { get; set; }
没有区别。
编辑2:我是否有可能从.aspx文件的第一行遗漏了一些内容?我有:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" %>
答案 0 :(得分:2)
听起来您的页面没有正确地连接到班级。确保您的aspx页面中的页眉中有Inherits="go._default"
。
编辑编辑完成后,这绝对是您的问题。
此外,如果您需要而不是属性(但我总是推荐属性),您肯定可以使用字段,并且您可以使用protected而不是public。除非你真的想从这个类或继承链之外访问它们,否则事情不应该是公开的。
答案 1 :(得分:0)
在使用绑定表达式时,您需要调用Page.DataBind()
在page_load中并生成变量Public
public string metaRedirect { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
metaRedirect="Hello World.";
Page.DataBind();
}
尝试:
<%#metaRedirect%>
或者你可以简单地称之为
<%= metaRedirect%>