[英]Can't access variable from code behind
我試圖從后面的代碼中編寫變量,但被告知“名稱“ 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" %>
聽起來您的頁面未正確連接到課程。 確保在aspx頁的頁眉中有Inherits="go._default"
。
編輯編輯后,這絕對是您的問題。
另外,如果需要,您可以絕對使用字段代替屬性(但我始終建議使用屬性),並且可以使用protected而不是public。 除非您確實確實想從此類或繼承鏈之外訪問事物,否則它們不應公開。
使用綁定表達式時,需要在page_load中調用Page.DataBind()
並將變量設置為Public
public string metaRedirect { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
metaRedirect="Hello World.";
Page.DataBind();
}
並嘗試:
<%#metaRedirect%>
或者你可以簡單地稱它為
<%= metaRedirect%>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.