我是 ASP.NET(以及一般的 Web 开发)的新手。出于某种原因,在我的 ASP.NET 母版页中,超链接 Web 控件不起作用。
我希望它们作为 Web 控件,因此如果用户会话当前已登录,我可以将“登录”超链接文本更改为“注销”(以及它的 navigateURL)。
谁能找到问题?
这是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title></title>
<link href="~/Styles/default.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
<style type="text/css">
.style1
{
width: 468px;
}
</style>
</head>
<body>
<form id="Form1" runat="server">
<div id="wrapper" runat="server">
<div id="header" class="container" runat="server">
<table style="width: 100%; height: 128px;" runat="server">
<tr>
<td class="style1" runat="server">
WEBLINK
</td>
<td>
<asp:HyperLink ID="HyperLink1" runat="server">About</asp:HyperLink>
</td>
<td>
<asp:HyperLink ID="HyperLink2" runat="server"
NavigateUrl="~/InterestPages/InterestNews.aspx">Interests</asp:HyperLink>
</td>
<td>
<asp:HyperLink ID="HyperLink3" runat="server">Blogs</asp:HyperLink>
</td>
<td>
<asp:HyperLink ID="loginLink" runat="server" NavigateUrl="~/Account/Login.aspx"
ViewStateMode="Enabled">Login</asp:HyperLink>
</td>
</tr>
</table>
</div>
</div>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
这是我的 C# 母版页代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class SiteMaster : System.Web.UI.MasterPage
{
private void Page_PreInit(object sender, EventArgs e)
{
if (Session["LoggedIn"] != null && (bool)Session["LoggedIn"] == true)
{
MasterPageFile = "~/LoggedIn.master";
}
else
{
MasterPageFile = "~/Site.master";
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (Session["LoggedIn"] != null && (bool)Session["LoggedIn"] == true)
{
loginLink.Text = "Log out";
loginLink.NavigateUrl = "";
}
else
{
loginLink.Enabled = true;
loginLink.Text = "Login";
loginLink.NavigateUrl = "~/Account/Login.aspx";
}
}
}