2012-05-24 100 views
2

我有這樣的代碼在我Site.master在Site.master.cs中找不到ASP超鏈接?

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %> 
<!-- ... --> 
<AnonymousTemplate> 
    [ <asp:HyperLink ID="LoginHyperLink" runat="server" EnableViewState="false">Log In</asp:HyperLink> | 
    <asp:HyperLink ID="RegisterHyperLink" runat="server" EnableViewState="false">Register</asp:HyperLink> ] 
</AnonymousTemplate> 

我有這樣的代碼在我Site.master.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
// ... 
protected void Page_Load(object sender, EventArgs e) 
{ 
    // this is just placeholder for now. 
    RegisterHyperLink.NavigateUrl = "Register.aspx?ReturnUrl=" + HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]); 
} 

我在RegisterHyperLink.NavigateUrl說得到一個編譯時錯誤Visual Studio 2010

「名稱'RegisterHyperLink'在當前不存在語境「。

不確定發生了什麼事。我在非母版頁面看過這個作品,所以這在Masters中不起作用?

我認爲它會...

+0

可能是'AnonymousTemplate'沒有激活。您是否登錄? – mafue

+0

查看上面的編輯。這不會編譯。 – kevlar1818

+0

什麼是AnonymousTemplate? –

回答

0
  • 確保您的代碼隱藏從System.Web.UI.MasterPage繼承。

  • 確保ASPX有添加了相應的指令,它是正確的與正確拼寫的情況下:

    <%@ Master Language="C#" CodeFile="Site.master.cs" Inherits="MasterPage" %>

+0

這些東西都在那裏,它仍然無法正常工作。我將編輯我的問題來反映這一點。 – kevlar1818

+0

另外,'System.Web.UI.MasterPage'似乎不存在。 – kevlar1818

+0

@ kevlar1818 - 這可能是問題,這是一個ASP.NET解決方案,而不僅僅是一個網站?嘗試通過右鍵單擊並選擇MasterPage來創建新的母版頁。如果您嘗試與問題主頁面進行比較以查看是否有任何差異。 –

0

正是由於這種AnonymousTemplate的。它可能會創建新的命名容器,因此無法直接從Page_Load訪問。

+0

但是,如果它不是母版頁,就可以正常工作。 – kevlar1818

3

這是一個錯誤,在Desing/Source保存中添加一個新的HyperLink並重試。刪除新的超鏈接完成