我无法在ASP.Net网站上访问我的UI控件。
当我创建一个全新的表单并在其上拖动一个控件时,我可以使用C#轻松地更改控件的属性,就像人们期望的那样。
但是当我尝试在另一个页面上执行相同操作时,无论是否在页面上拖动新控件,我都无法访问任何控件。
似乎背后的代码和可视化页面没有连接。
我该如何解决这个问题?
答案 0 :(得分:4)
脱离我的头顶:
代码隐藏文件是否在ASPX文件的顶行注册?
<%@ Page Title="Title" Language="C#" MasterPageFile="~/Default.Master" AutoEventWireup="true"
CodeBehind="Page.aspx.cs" Inherits="MyNameSpace.Page" %>
设计器文件是否已被删除或已损坏?如果是这样,请尝试删除deigner文件。 VS应该为你重新生成它。
检查设计人员/代码隐藏文件后的构建操作,并确保它们都设置为“编译”(您可以通过右键单击VS中的文件并选择属性来更改此设置,构建操作应该在文件属性编辑器)
确保您的项目文件设置正确。有时通过项目文件升级(比如当你更改VS版本时)或者只是通过源控制系统共享项目文件可能会导致事情变得糟糕。确认你的文件中你的csproj文件中有这样的条目(用文本编辑器确认,记事本没问题):
<Compile Include="Page.aspx.cs">
<DependentUpon>Page.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Page.aspx.designer.cs">
<DependentUpon>Page.aspx</DependentUpon>
</Compile>
我希望其中一个解决你的问题!
答案 1 :(得分:0)
如果您没有designer.cs文件,只需右键单击aspx和“转换为Web应用程序”,然后您就可以获得一个。
答案 2 :(得分:0)
我知道这是一个老问题,但是当我在创建没有设计器文件的aspx页面时遇到同样的问题时,我觉得有必要分享我对该问题的解决方案。
为了使用页面上存在的ASP控件,您需要将控件声明为类中的字段,即与页面中的“Inherits”属性关联的类。例如,如果我的页面上有一个ID为“test”的标签控件,那么我会在我的班级中声明以下内容:
protected System.Web.UI.WebControls.Label test;