我最近将我的 VS2010 网站项目从 .NET 3.5 更新到 4.0。网站项目一切正常。今天我决定将网站迁移到 Web 应用程序项目,因为我了解到这是在 .NET 中工作的最佳方式。我将我所有的类文件拆分到一个单独的类库中,并将所有其他内容复制到我的新项目中。然后我更新了所有引用资料和 web.config。
当我构建类库时,一切正常。
当我尝试构建/调试 Web 应用程序项目时出现问题。它表现得好像所有的控件都丢失了,而且它还抛出了一堆关于我的母版页中的公共(public)属性的编译错误。
控制错误:
"The name 'INSERT CONTROL NAME HERE' does not exist in the current context"
母版页错误:
'System.Web.UI.MasterPage' does not contain a definition....
它为我整个解决方案中的每个控件和母版页属性提供这些错误。
我注意到,当我向该项目添加一个新的 web.form 时,除了 .aspx 和 .aspx.cs 文件之外,它还添加了一个 filename.aspx.designer.cs 文件。我现有的文件没有这些额外的文件,因为它们是在不同的 .NET 版本中创建的。
有人知道如何克服这些问题吗?
更新: 似乎我错过了需要右键单击新应用程序文件夹并选择“转换为 Web 应用程序”的步骤。我刚刚这样做了,它似乎好一点......
现在它对单引号内的文字感到窒息:
<div class='<asp:Literal ID="CssClassLiteral" runat="server"></asp:Literal>'>
它在进行转换时看不到这个文字...上面的代码是否有效,或者我应该以其他方式实现该功能吗?
请您参考如下方法:
是的 - 网站项目和 Visual Studio 中的 Web 应用程序项目之间的主要区别之一是 Web 应用程序项目为每个页面/用户控件定义了一个 designer.cs 文件。
因此,假设您在网站中有一个带有代码隐藏的页面:
Default.aspx
Default.aspx.cs
在 Web 应用程序中,现在需要设计器:
Default.aspx
Default.aspx.designer.cs
Default.aspx.cs
设计器文件是自动生成的,但您可能需要“触摸”每个页面才能生成。
