【问题标题】:ASP.NET Public Variable at Code Behind is not accesible in .aspx在 .aspx 中无法访问代码隐藏处的 ASP.NET 公共变量
【发布时间】:2023-03-29 11:00:01
【问题描述】:

这是这里发生的事情的一个简单示例。

默认.aspx

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="default.aspx.vb" Inherits="base._default1" %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <% Response.Write(sName) %>
        </div>
        </form>
    </body>
    </html>

以及default.aspx.vb背后的代码

Public Class _default1
    Inherits System.Web.UI.Page

    Public sName As String = "Jimmy"

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

End Class

错误是

BC30451 'sName' 未声明。由于其保护级别,它可能无法访问。基础 C:\Users\Jimmy\Documents\Visual Studio 2015\Projects\base\base\teste\default.aspx 12

问题出在哪里?

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    最大的问题是你的班级_default1没有被标记为partial班级。

    应该是

    Public partial Class _default1
          Inherits System.Web.UI.Page
    

    还有一点是您的页面指令具有属性AutoEventWireup="false",因此您现在映射页面事件的方式将不起作用。所以将其设置为 true 而不是 AutoEventWireup="true"

    您的 @Page 指令很奇怪,如下所示。

    <%@ Page AutoEventWireup="false" CodeBehind="default.aspx.vb" Inherits="base._default1" %>
    

    总结;以下是您应该注意的问题

    1. 标记班级partial

    2. 设置AutoEventWireup="true"

    3. CodeBehind 属性更改为CodeBehind="default1.aspx.vb"

    4. 将您的 Inherits 属性更改为 Inherits="your_namespace._default1"

    【讨论】:

    • 是的,我的错,这根本不是问题。请参阅答案中的编辑。
    • @JuanPhotizo,考虑接受他的回答,然后点击检查按钮。
    猜你喜欢
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多