繁体   English   中英

无法在C#代码中访问我的UI控件。 怎么了?

[英]Cannot access my UI controls in C# code. What's wrong?

我无法在ASP.Net网站上访问我的UI控件。

当我创建一个全新的表单并在其上拖动一个控件时,我可以使用C#轻松地更改控件的属性,就像人们所期望的那样。

但是,当我尝试在另一个页面上执行相同操作时,无论是否在页面上拖动新控件,我都无法访问任何控件。

似乎背后的代码和可视化页面没有连接。

我怎样才能解决这个问题?

脱离我的头顶:

代码隐藏文件是否在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>

我希望其中一个解决你的问题!

我知道这是一个老问题,但看到我在创建没有设计器文件的aspx页面时遇到了同样的问题,我觉得有必要分享我对该问题的解决方案。

为了使用页面上存在的ASP控件,您需要将控件声明为类中的字段,即与页面中的“Inherits”属性关联的类。 例如,如果我的页面上有一个ID为“test”的标签控件,那么我会在我的类中声明以下内容:

protected System.Web.UI.WebControls.Label test;

如果你没有designer.cs文件,只需右键单击aspx和“转换为Web应用程序”,然后你就会得到一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM