在Site.master.cs中找不到ASP超链接?

时间:2012-05-24 15:53:29

标签: asp.net visual-studio-2010 web-services hyperlink

我在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说{<1}}时出现编译时错误:

  

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

不确定是什么。我在非母版页面上看过这个作品,所以这在大师赛中不起作用吗?

我认为会...

3 个答案:

答案 0 :(得分:3)

这是一个错误,在Desing / Source保存中添加新的HyperLink,然后重试。删除新的超链接以完成

答案 1 :(得分:0)

  • 确保您的代码隐藏继承自System.Web.UI.MasterPage

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

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

答案 2 :(得分:0)

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