【问题标题】:error running "working" web application in Visual Web Developer 2010 Express在 Visual Web Developer 2010 Express 中运行“工作”Web 应用程序时出错
【发布时间】: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' 不包含'LinkBut​​ton2_Click' 的定义,并且找不到接受'ASP.site_master' 类型的第一个参数的扩展方法'LinkBut​​ton2_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


【解决方案1】:

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

Site.Master.aspx:

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

其中必须与 Site.Master.cs 中一样

【讨论】:

  • 就是这样!在 VS2008 中必须不需要。谢谢!
猜你喜欢
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
相关资源
最近更新 更多