2014-02-12 34 views
4

我正在使用Visual Studio 2008開發的舊.NET Web應用程序的支持。但是,我正在使用Visual Web Developer 2010 Express。我已經直接從上一個工作版本加載項目代碼作爲Web應用程序。所有內容都會編譯並加載安裝程序以定位.NET Framework 3.5版。錯誤在Visual Web Developer 2010 Express中運行「正在工作」的Web應用程序

然而,當調試,第一頁要求在「編譯錯誤」的結果與消息

「* CS1061:‘ASP.site_master’不包含‘LinkBut​​ton2_Click’,沒有擴展方法「的定義LinkBut​​ton2_Click '可以找到'接受'ASP.site_master'類型的第一個參數(你是否缺少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之間的版本問題。

+0

你仍然有.csproj的文件的原始版本,所以你可以對一個做你的差異當前.csproj?我懷疑有些零件丟失了,所以新編譯的版本不起作用。 – Filburt

+0

您已經使用visual studio的發佈命令安裝了該網站?在線網站在根文件夾上有一個bin目錄?在這個目錄中有一個或多個dll文件? – bdn02

回答

2

將一個Inherits =「Site」屬性添加到Master聲明中。這可能會允許它與代碼隱藏文件正確連接。

Site.Master.aspx:

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

,其中必須在Site.Master.cs

+0

就是這樣!在VS2008中一定不需要。謝謝! – Paco

相關問題