“System.Web.UI.MasterPage不包含定义...”ASP.NET错误

时间:2012-02-14 14:11:42

标签: c# asp.net .net

编辑:主要问题似乎是我只是将旧网站项目中的“添加现有项目”添加到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帖子,但这并没有解决我的问题。

思考?所有反馈都表示赞赏。谢谢你们。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

检查this.Master的命名空间。 如果是System.Web.UI.MasterPage,请尝试将主页重命名为其他名称。通过这种方式,您可以隔离问题。

答案 2 :(得分:0)

我的答案与@mreyeros的答案类似 - 但是,我的设计师档案已经存在 - 这是Vs没有认识到非设计师类的部分性质,因此将2连接起来。

我使用的修复方法是从项目中删除文件,然后使用add existing重新添加它们。我是批量做的,新添加的文件表现正常,错误也消失了。