无法从 .aspx 页面访问代码隐藏变量

Code Behind variable is not accessible from .aspx page

我在一个名为 VersionNumber 的 aspx.cs 页面中有一个变量:

namespace App_name
{
  public partial class Default : System.Web.UI.Page
  {
    public string VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
    protected void Page_Load(object sender, EventArgs e)
    {

    }
  }
}

这个变量应该可以像这样在 .aspx 页面中访问,但是有一条红色的波浪线告诉我它在这个上下文中不存在:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="App_name.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>App Name <%=VersionNumber %></title>
<script type="text/javascript" src="scripts/jquery-1.12.4.js"></script>
<script type="text/javascript" src="bs/js//bootstrap-typehead.js?<%=VersionNumber %>"></script>
<script type="text/javascript" src="scripts/Default.js?<%=VersionNumber %>"></script>
<script type="text/javascript" src="scripts/Helper.js?<%=VersionNumber %>"></script>

等等

如何使 VersionNumber 在 .aspx 页面中可访问? 谢谢

我测试了你的代码,得出以下解决方案:

不改变aspx页面的cs文件应该是这样的:

namespace Solution_History
{
    public partial class Default : System.Web.UI.Page
    {
        public string VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

如果不将命名空间添加到 cs 文件中,则 aspx 中的第一行应为:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %

两种可能性我都试过了,都显示了版本号。

希望对您有所帮助。

我的问题的解决方案是在 aspx 页面的继承部分写入命名空间和 class 名称,如下所示:

Inherits="Solution_History.Default"