从 Web 应用程序项目中的 aspx 页访问代码隐藏的属性

Accessing Properties of the code-behind from aspx page in web application project

提问人:Shomaail 提问时间:12/4/2017 最后编辑:Shomaail 更新时间:12/5/2017 访问量:1668

问:

我在 Web 应用程序项目的代码隐藏文件中有一个属性 x。它给了我编译时错误,而它没有在网站项目中给出任何错误

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" 
Inherits="test.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
<div>
<%= x2 %>
<%# x2 %>
</div>
</form>
</body>
</html>

代码隐藏文件:

using System;
namespace test
{public partial class WebForm1 : System.Web.UI.Page
{
    public int x2 = 2;
    protected void Page_Load(object sender, EventArgs e)
    {          
    }     
   }
}

当我在我的网站项目中使用相同的技术时,它工作正常 请帮忙 谢谢

asp.net Web 应用程序 属性 命名空间

评论


答:

0赞 wazz 12/5/2017 #1

这对我有用。您确定 ViewState 中有一个值吗?在表单加载时,添加一个值进行测试。

ViewState["FormMode"] = "ViewApplicant";
lblMessage.DataBind();

此外,请确保标签包含一些要查看的文本。它可能显示,但为空。

<asp:Label ID="lblMessage" runat="server" 
    Text="some text" 
    Visible='<%# FormMode == "View" || FormMode == "ViewApplicant" %>'>
</asp:Label>

评论

0赞 Shomaail 12/5/2017
问题不在于 Viewstate。任何其他属性也无法访问。它给出编译时错误。名称“FormMode”在当前上下文中不存在
0赞 RAK 12/5/2017 #2

你的代码完全没问题。在访问变量/属性 initillay 时,表示编译错误的表达式下方可能会出现红色下划线,但在生成解决方案时,应该不会出现错误。

0赞 wazz 12/5/2017 #3

您的原始帖子已更改,因此这里有一个新答案。

尝试从代码隐藏中删除命名空间,并将页面上的“inherits”更改为 .Inherits="WebForm1"

page 指令:

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

代码隐藏:

using System;

public partial class WebForm1 : System.Web.UI.Page
{
    public int x2 = 2;
    protected void Page_Load(object sender, EventArgs e)
    {
    }     
}

“继承”必须与分部类名匹配。

1赞 RAK 12/5/2017 #4

检查 WebForm1.aspx.cs 背后的代码中是否存在任何其他错误,例如缺少引用或任何其他编译错误。