ASP.NET母版页超链接控件不工作
我不熟悉ASP.NET(以及一般的web开发)。 由于某些原因,在我的ASP.NET母版页中,超链接web控件不起作用 我希望将它们作为web控件,这样,如果用户会话当前已登录,我可以将“登录”超链接文本更改为“注销”(以及其navigateURL) 有人能找到问题吗 代码如下:ASP.NET母版页超链接控件不工作,asp.net,hyperlink,master-pages,Asp.net,Hyperlink,Master Pages,我不熟悉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.dt
<!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>
当会话不为null时,您的NavigateUrl为空。因此,请更改此行
loginLink.NavigateUrl=“#”代码>
试试这个代码
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";
}
为什么不直接用asp LoginView控件替换登录菜单链接呢?
您可以使用登录链接添加匿名模板,以指向您的登录页面,然后
通过添加LoginStatus,创建一个带有注销链接的LoggedIn模板。
它让您对登录用户表示欢迎。
哦,它还让你摆脱了所有的初始化前的东西和会话跟踪
您可以使用用户标识isAuthenticated来确定该会话是否已登录
如果你想为你的登录页面使用不同的母版页。。。您可以为您的登录页面创建一个或将其指向另一个母版页
我也不认为您的预初始化正在启动。试试看,我会试试这种方法,看看效果如何。谢谢
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";
}