我正在尝试这样做,如果您的Session["LoggedIn"]
为true,则wuc( Web用户控件,它是 Navbar ,并已连接到(连接到页面的 MasterPage )会显示一个logout
按钮。
所以我这样子:
Response.Write("<a runat='server' ID='lblLogout' class='nav-link' CausesValidation='False' OnServerClick='lblLogout_Click'>Logout</a>");
CodeBehind函数如下所示:
protected void lblLogout_Click(object sender, EventArgs e)
{
Session.RemoveAll();
Session["LoggedIn"] = false;
Session["IsAdmin"] = false;
Session["Username"] = "";
}
现在,我已经尝试了所有方法,如果我像这样使用response.write
,我将无法单击它,否则,它将触发或执行任何操作(如果我未在Response.Write中使用它)。 ,它确实有效。.
我什至尝试使用prinitng asp:LinkButton
来查看它是否有效,但是当我使用它时,它不会打印出任何内容:
Response.Write("<asp:LinkButton class='nav-link' runat='server' ID='lblLogout' Text='Logout' CausesValidation='False' OnClick='lblLogout_Click' />");
现在,我找到的解决方案是放置另一个页面注销并将函数放置在PageLoad
上,该方法可以工作,但是我想知道是否可以使其工作,所以我可以使用CodeBehind中的函数来代替不得不转到另一页。
我的工作解决方案:
if ((bool)Session["LoggedIn"] == true)
{
Response.Write("<li class='nav-item'> <a runat='server' ID='lblLogout' class='nav-link' CausesValidation='False' href='../PagesForVisitor/wfLogout.aspx'>Logout</a></li><li><a class='navbar-brand' href='#'><img src='" + GetSource() + "' width = '30' height = '30' alt = ''/ ></a></li>");
}
(此人也打印出个人资料图片)
p.s使用Bootstrap
进行样式设置,不确定是否很重要,谢谢大家。
答案 0 :(得分:1)
您应该使用
<asp:Button id='' runat='server'>
标签 或使用CSS根据样式自定义按钮外观。
您可以在属性中使其成为超链接。