【问题标题】:"System.Web.UI.MasterPage does not contain a definition..." ASP.NET error“System.Web.UI.MasterPage 不包含定义...” ASP.NET 错误
【发布时间】:2014-12-02 21:32:02
【问题描述】:

编辑:主要问题似乎是我只是将旧网站项目中的“添加现有项目”添加到 ASP.NET Web 应用程序项目中。这给我带来了很多麻烦,我只是从头开始,除了添加现有项目之外,我向项目添加了新的母版页和 aspx 页面,然后填充它们。同样的问题仍然存在。

我有一个遗留项目,它只是一个标准网站。我已经开始了一个作为 Web 应用程序的新项目,并且已经移植到我需要的所有页面中。但是,我收到了 100 多个错误,这些错误主要由以下略有不同的排列组成:

  • 'System.Web.UI.MasterPage does not contain a definition for 'headerImage'(我在代码隐藏中得到了这个)
  • 'MasterPage' does not contain a definition for 'imgHeader'(这也在代码隐藏中)

关于第一个错误,好像项目不理解设置了母版页。我将母版页设置在每个 aspx 页面的顶部,例如:

<%@ page language="C#" masterpagefile="~/MasterPages/MasterPage.master" autoeventwireup="true" inherits="Equipment.aspx.cs" title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPages/MasterPage.master"  %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<!-- some content -->
</asp:Content>

另外,我在 ~/MasterPages/MasterPage.master 代码隐藏中明确公开了 headerImage 属性:

   public partial class MasterPage : System.Web.UI.MasterPage
   {
      #region Properties

      private string _headerImage;
      public string headerImage
      {
         get
         {
            return _headerImage;
         }
         set
         {
            _headerImage = (string)value;
         }

      }

      // other stuff
   }

然而 VS 仍在 System.Web.UI.MasterPage 基类中寻找这个属性!

我已经查看了this 的帖子,但它并没有解决我的问题。

想法?感谢所有反馈。谢谢大家。

【问题讨论】:

  • 这个文件“~/MasterPages/MasterPage.master”的分机在哪里
  • @DJKRAZE 我是 VS ASP.NET 的新手。如果你的意思是扩展,它只是 .master,后面的代码是 .cs。

标签: c# asp.net .net


【解决方案1】:

早上好,当您将现有文件添加到新的 Web 应用程序时,您是从头开始重新创建它们,还是直接“添加现有项目”?如果是这样,那么您应该右键单击每个文件并单击“转换为 Web 应用程序”选项。

【讨论】:

  • 是的,我刚刚做了“添加现有项目”。所以我只需要在母版页上进行“转换”(这是我唯一看到该选项的地方)。谢谢。
  • 站点中的其他 .aspx 或 .ascx 文件是否不可用?
  • 奇怪的是它对某些人可用。我继续并转换了所有我能转换的文件。执行此操作后,我收到诸如“类型'MasterPage'已经包含'Form1'的定义”和其他项目的错误。
  • mreyeros 有一个很好的建议
  • 通过单击“转换..”选项,它的作用是创建一个与每个 .master、.aspx 等相关联的设计器文件。该设计器文件将包含您的所有控件声明有问题的文件。确保在每个文件的代码隐藏文件中没有任何这样的控件声明:protected global::System.Web.UI.HtmlControls.HtmlForm form1;
【解决方案2】:

检查 this.Master 的命名空间是什么。 如果是System.Web.UI.MasterPage,请尝试将您的母版页重命名为其他名称。这样您就可以隔离问题。

【讨论】:

  • 这就是问题所在。 Master Pages 中移植的内容位于 no 命名空间中。我只是用这个项目使用的公共命名空间包装它们,我的大部分问题都消失了。仍然有一些“mynamespace.MasterPage 已经定义了一个名为“SomeCSS”的具有相同参数的成员。”感谢您的提示。
【解决方案3】:

我的回答与@mreyeros 的回答相似——但是,我的设计器文件已经存在——Vs 没有识别出非设计器类的部分性质,因此将两者联系在一起。

我使用的修复是从项目中删除文件并使用添加现有的重新添加它们。我批量执行此操作,新添加的文件运行正常,错误消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2017-01-18
    相关资源
    最近更新 更多