我在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'。”
不确定是什么。我在非母版页面上看过这个作品,所以这在大师赛中不起作用吗?
我认为会...
答案 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访问。