Asp.net 母版页上的编译器错误
是否有人建议将母版页从一个解决方案/应用程序移动到另一个解决方案/应用程序 我已将母版页从现有解决方案复制到新解决方案 最初的解决方案构建并运行良好 在新解决方案中,该页面会导致生成错误 这些主要是未声明的“变量” 我已经注释掉了页面的所有服务器代码,除了两条非常简单的语句 语句1引用了原始页面标记中的控件Asp.net 母版页上的编译器错误,asp.net,visual-studio-2008,master-pages,compiler-errors,Asp.net,Visual Studio 2008,Master Pages,Compiler Errors,是否有人建议将母版页从一个解决方案/应用程序移动到另一个解决方案/应用程序 我已将母版页从现有解决方案复制到新解决方案 最初的解决方案构建并运行良好 在新解决方案中,该页面会导致生成错误 这些主要是未声明的“变量” 我已经注释掉了页面的所有服务器代码,除了两条非常简单的语句 语句1引用了原始页面标记中的控件 pgLoginView.EnableViewState = True 语句2引用了为测试目的新添加的控件 lblFrogs.Text = "sdfgsd" 编译器似乎不知道应该从标记生成
pgLoginView.EnableViewState = True
语句2引用了为测试目的新添加的控件
lblFrogs.Text = "sdfgsd"
编译器似乎不知道应该从标记生成的类成员。我已检查标记文件的“继承”属性设置是否正确。
当我在代码编辑器中调用intellisense时,两个对象(lblFrogs和pgLoginView)都会列出,并在按“.”后正确列出它们的属性和方法
任何与此问题相关的帮助或想法都将不胜感激。我已经不知所措了-这是一次短暂的旅程。您应该检查生成的母版页设计器代码-尽管.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...
}
公共部分类站点1
{
///
///ContentPlaceholder 1控件。
///
///自动生成的字段。
受保护的全局::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder 1;
//等等。。。
}
如果该页面不包含正确生成的代码,那么我真的不确定除了玩它之外还有什么建议,或者如果你真的被卡住了,你自己声明控件-我以前遇到过这个问题,但我不太了解设计器代码是如何生成的
如果这不是问题所在,那么您确定visual studio没有决定重命名任何控件吗?似乎走上了正确的道路。我把这个项目转换成一个网站项目,问题就解决了
看来根本原因可能仍然是个谜。这一页的汇编肯定让人抓狂 我无法引用配置文件属性。这 表示概要文件对象作为编译过程的一部分添加到页面中,如下所示: 受保护的配置文件公共配置文件{ 得到{ 返回((ProfileCommon)(Context.Profile)); }}
当我在工作项目中为ProfileCommon查找文件时,我从asp.net临时文件中获得了许多结果。在损坏的项目中,ProfileCommon不会出现在任何文件中。我终于找到了Profile对象的问题根源 首先,概要文件功能仅在web站点类型项目中可用。然而,既然项目已经转换为web站点类型以解决引用页面元素的第一个问题,那么为什么profile对象不可用呢 答案是转换不会修改页面标记。需要使用“CodeFile”指定代码隐藏的位置,并且继承属性必须删除前导的命名空间信息。例如:
您的页面是否包含在网站或Web应用程序项目中?编译过程对每一个都是不同的。它是在一个Web应用程序项目中啊!我不知道designer.master被用于编译。我已经打开了它,实际上那些东西不在里面!在对上述内容的澄清中,由于ProfileCommon未知,我无法手动将该属性添加到页面中。我尝试了对该建议的各种排列:无效。无法从母版页或添加的空测试页访问profile属性和ProfileCommon