【问题标题】:Compiler Errors on Master Page母版页上的编译器错误
【发布时间】:2009-09-16 15:29:44
【问题描述】:

有人对将母版页从一个解决方案/应用程序移动到另一个解决方案/应用程序有什么建议吗?

我已将母版页从现有解决方案复制到新解决方案。

原始解决方案构建并运行良好。

在新的解决方案中,页面会导致构建错误

这些主要是未声明的“变量”。

我已经注释掉了页面的所有服务器代码,除了两个非常简单的语句。

语句 1 引用了原始页面标记中的控件

pgLoginView.EnableViewState = True

语句 2 引用了一个新添加的用于测试目的的控件

lblFrogs.Text = "sdfgsd"

就好像编译器不知道应该从标记中生成的类成员。我检查了标记文件的“继承”属性设置是否正确。 当我在代码编辑器中调用智能感知时,会列出两个对象(lblFrogs 和 pgLoginView),并在按下“。”后依次正确列出它们的属性和方法。

任何与此问题相关的帮助或想法将不胜感激。我已经束手无策了——这是一段短暂的旅程。

【问题讨论】:

  • 您的页面是否包含在网站或 Web 应用程序项目中?每个的编译过程都完全不同。
  • 它在一个 Web 应用程序项目中

标签: asp.net visual-studio-2008 master-pages compiler-errors


【解决方案1】:

您应该检查为您的母版页生成的设计器代码 - 尽管 .aspx / .master 页面在运行时用于创建页面上所有控件的实例,但在编译时所有关于存在哪些控件的信息标记上包含在 .designer.master 文件的部分类中:

public partial class Site1
{
    /// <summary>
    /// ContentPlaceHolder1 control.
    /// </summary>
    /// <remarks> Auto-generated field.</remarks>
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1;

    // Etc...
}

如果该页面不包含正确生成的代码,那么我真的不确定除了玩弄它之外还有什么建议,或者如果你真的卡住了,请自己声明控件 - 我以前遇到过这个问题但我不太了解设计器代码是如何生成的。

如果这不是问题,那么您确定 Visual Studio 还没有决定重命名任何控件吗?

【讨论】:

  • 啊!我不知道 Designer.master 被用于编译。我打开了,里面确实没有东西!
【解决方案2】:

christian-hayter 似乎在正确的轨道上。我将项目转换为网站项目,问题就消失了。

看起来根本原因可能仍然是个谜。

【讨论】:

    【解决方案3】:

    这个页面的编译肯定出了问题。

    我无法引用 Profile 属性。这个article from Dino Esposito 表示 Profile 对象作为编译过程的一部分添加到页面中,如下所示:

    受保护的 ProfileCommon Profile { 得到 { 返回((ProfileCommon)(Context.Profile)); }}

    当我在工作项目中查找 ProfileCommon 的文件时,我从 asp.net 临时文件中获得了许多结果。在损坏的项目中,ProfileCommon 不会出现在任何文件中。

    【讨论】:

    • 在澄清上述 - 由于 ProfileCommon 未知,我无法手动将属性添加到页面。
    • 我已经尝试了这个建议的各种排列:brendancleary.com/?p=41 无济于事。无法从母版页或添加的空测试页访问配置文件属性和 ProfileCommon
    【解决方案4】:

    我终于找到了 Profile 对象的问题所在。

    首先,配置文件功能仅在网站类型项目中可用。但是既然项目已经转换为网站类型来解决引用页面元素的第一个问题,那么为什么配置文件对象不可用呢?

    答案是转换不会修改页面标记。后面代码的位置需要用“CodeFile”指定,Inherits 属性必须去掉前面的命名空间信息。示例:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多