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 2010RegisterHyperLink.NavigateUrl

“当前上下文中不存在名称‘RegisterHyperLink’。”

不太确定发生了什么。我在非母版页中看到了这项工作,那么这在大师版中不起作用吗?

我想它会...

4

3 回答 3

3

这是一个错误,在设计/源代码保存中添加一个新的超链接,然后重试。删除新的超链接以完成

于 2012-10-17T15:15:13.567 回答
0
  • 确保您的代码隐藏继承自System.Web.UI.MasterPage.

  • 确保 aspx 添加了适当的指令,并且拼写正确且大小写正确:

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

于 2012-05-24T17:16:04.913 回答
0

正是因为这个 AnonymousTemplate。它可能会创建新的命名容器,因此不能从 Page_Load 直接访问。

于 2012-05-24T17:18:55.420 回答