我们的一个承包商给了我们一个 ASP.NET 2.0 网站,但我在将它集成到我们的流程中时遇到了一些麻烦。他给我们的项目是一个压缩目录,没有解决方案文件或任何东西。我可以使用“打开”->“网站”选项在 Visual Studio 中打开它,网站就会运行。但是,我想将它设置为一个 Web 应用程序项目,这样我就可以将项目引用添加到我们的共享库,而不是将它们链接到“bin”目录中,这只是因为我更喜欢真正的常规项目。
我遇到了一个奇怪的问题。让我提取一些代码:
标题控件.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="HeaderControl.ascx.cs" Inherits="Controls_WebUserControl" %>
HeaderControl.ascx.cs
public partial class Controls_WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
好吧,这有点奇怪,但至少看起来是合法的。基类在代码隐藏(代码文件?)中有部分定义。但是随后许多其他控件以相同的方式定义,例如
一些控件.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SomeControl.ascx.cs" Inherits="Controls_WebUserControl" %>
SomeControl.ascx.cs
public partial class Controls_WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
意料之中的是,当我尝试构建我已将文件传输到的新 Web 应用程序项目时,我收到了一堆关于在多个位置定义相同方法的错误。我不明白为什么它没有设置一个代码来定义控制类的部分定义和基类的重写方法,但这有点离题了。
真正让我着迷的是:原版是如何工作的?它运行并且有效,所以编译器一定在做一些我不明白的事情。 Controls_WebUserControl 类发生了什么变化?
最佳答案
当您从网站更改为 Web 应用程序时,您需要右键单击该项目并选择“转换为 Web 应用程序”。这应该会更新所有页面。
这是一个旧链接,但我认为它仍然相关:
http://webproject.scottgu.com/CSharp/migration2/migration2.aspx
关于c# - ASP 2.0 和部分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1877051/