gpt4 book ai didi

c# - 在 Visual Web Developer 2010 Express 中运行 "working"Web 应用程序时出错

转载 作者:行者123 更新时间:2023-11-30 12:28:26 25 4
gpt4 key购买 nike

我正在获取在 Visual Studio 2008 上开发的旧 .NET Web 应用程序的支持。但是我使用的是 Visual Web Developer 2010 Express。我直接从最后一个工作版本加载了项目代码作为 Web 应用程序。 Everything 编译并加载设置以面向 .NET Framework 3.5 版。

但是在调试时,请求的第一个页面导致“编译错误”消息

"*CS1061: 'ASP.site_master' does not contain a definition for 'LinkButton2_Click' and no extension method 'LinkButton2_Click' accepting a first argument of type 'ASP.site_master' could be found (are you missing a using directive or an assembly reference?)*".

这里是相关的代码细节:

来自 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 之间的版本问题。

最佳答案

在您的 Master 声明中添加一个 Inherits="Site"属性。这可能允许它与代码隐藏文件正确连接。

网站.Master.aspx:

<%@ Master Language="C#" Inherits="<full namespace>.Site" CodeBehind="Site.Master.cs" AutoEventWireup="true" %>

必须在 Site.Master.cs 中的位置

关于c# - 在 Visual Web Developer 2010 Express 中运行 "working"Web 应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21741025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com