提问人:Shomaail 提问时间:12/4/2017 最后编辑:Shomaail 更新时间:12/5/2017 访问量:1668
从 Web 应用程序项目中的 aspx 页访问代码隐藏的属性
Accessing Properties of the code-behind from aspx page in web application project
问:
我在 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)
{
}
}
}
当我在我的网站项目中使用相同的技术时,它工作正常 请帮忙 谢谢
答:
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 背后的代码中是否存在任何其他错误,例如缺少引用或任何其他编译错误。
评论