2

私は私の中にこのコードを持っていますSite.master:

<%@ 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"]);
}

私はことわざでコンパイル時のエラーが発生しVisual Studio 2010ていRegisterHyperLink.NavigateUrlます:

「'RegisterHyperLink' という名前は、現在のコンテキストには存在しません。」

何が起きているのかよくわかりません。マスター以外のページでこれが機能するのを見たことがありますが、マスターでは機能しないのでしょうか?

私はそれが...

4

3 に答える 3

3

これはバグです。Desing/Source 保存に新しい HyperLink を追加して、もう一度試してください。新しいハイパーリンクを削除して終了します

于 2012-10-17T15:15:13.567 に答える
0

It is because of this AnonymousTemplate. It probably creates new naming container thus is not directly accessible from Page_Load.

于 2012-05-24T17:18:55.420 に答える
0
  • コード ビハインドが から継承されていることを確認してくださいSystem.Web.UI.MasterPage

  • aspx に適切なディレクティブが追加されていること、および大文字と小文字が正しく綴られていることを確認します。

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

于 2012-05-24T17:16:04.913 に答える