Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 母版页上的编译器错误_Asp.net_Visual Studio 2008_Master Pages_Compiler Errors - Fatal编程技术网

Asp.net 母版页上的编译器错误

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" 编译器似乎不知道应该从标记生成

是否有人建议将母版页从一个解决方案/应用程序移动到另一个解决方案/应用程序

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

最初的解决方案构建并运行良好

在新解决方案中,该页面会导致生成错误

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

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

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

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