【发布时间】:2014-02-12 22:18:08
【问题描述】:
我正在接受在 Visual Studio 2008 上开发的旧 .NET Web 应用程序的支持。但是我正在使用 Visual Web Developer 2010 Express。我已将项目代码直接从最后一个工作版本加载为 Web 应用程序。一切都编译并加载安装程序以定位 .NET Framework 3.5 版。
但是在调试时,请求的第一个页面会导致“编译错误”消息
"*CS1061: 'ASP.site_master' 不包含'LinkButton2_Click' 的定义,并且找不到接受'ASP.site_master' 类型的第一个参数的扩展方法'LinkButton2_Click'(您是否缺少 using 指令或程序集参考?)*”。
以下是相关代码详情:
来自 Site.Master:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.Master.cs" %>
...
<asp:LoginView ID="LoginView1" runat="server" >
<AnonymousTemplate>
<asp:LinkButton ID="LinkButton2" runat="server" Click="LinkButton2_Click"> Login
</asp:LinkButton>
</AnonymousTemplate>
来自 Site.Master.cs:
public partial class Site : BaseMasterPage // BaseMasterPage is subclass of System.Web.UI.MasterPage
...
public void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("/Login.aspx?ReturnURL="+ Request.Url.AbsolutePath);
}
很明显,代码已定义,没有明显的拼写错误。
我主要是一名 Java 开发人员,但在 .NET 方面拥有丰富的经验。然而,这个问题让我很困惑,所以我需要一些帮助来浏览它。我已经通过谷歌对其进行了广泛的研究,这种类型的问题已经被多次报告,包括在 Stack Overflow 上。但是以前报告中给出的决议都没有帮助我解决这个问题。这非常令人费解,因为代码显然可以在当前生产环境中运行。这似乎是 Visual Studio 2008 和 Visual Web Developer 2010 Express 之间的版本问题。
【问题讨论】:
-
您是否还有原始版本的 .csproj 文件,以便您可以对当前的 .csproj 进行比较?我怀疑有些部分丢失了,所以新编译的版本不起作用。
-
你用Visual Studio的发布命令安装了站点?在线站点的根文件夹上有一个 bin 目录?在这个目录下有一个或多个dll文件吗?
标签: c# asp.net .net visual-studio-2010