Asp.net 将html作为字符串生成为文本时,论坛身份验证注销不起作用

Asp.net 将html作为字符串生成为文本时,论坛身份验证注销不起作用,asp.net,.net-2.0,formsauthentication,dynamic-html,Asp.net,.net 2.0,Formsauthentication,Dynamic Html,我试图通过动态生成的HTML(字符串)创建一个注销按钮 htmlGen=”“; htmlGen++=“欢迎,”+Page.User.Identity.Name.ToString()+“()”; 如您所见,注销方法在服务器代码中: public void LogOut_OnClick(object sender, EventArgs args) { FormsAuthentication.SignOut(); string htmlGen =

我试图通过动态生成的HTML(字符串)创建一个注销按钮

htmlGen=”“;
htmlGen++=“欢迎,”+Page.User.Identity.Name.ToString()+“()”;
如您所见,注销方法在服务器代码中:

 public void LogOut_OnClick(object sender, EventArgs args)    {
          FormsAuthentication.SignOut();

            string htmlGen = "<div class=\"issue\" style=\"float:right; width:45%;\">";
            htmlGen += "<a style=\"color:White;\" href=\"/Login.aspx\">Login</a>";
            htmlGen += "&nbsp;|&nbsp;<a style=\"color:White;\" href=\"/Accounts/SignUp.aspx\">Register</a>";
            this.Literal1.Text = htmlGen + "</div>";

           FormsAuthentication.RedirectToLoginPage();


   }
public void LogOut\u OnClick(对象发送方、事件args args){
FormsAuthentication.SignOut();
字符串htmlGen=“”;
htmlGen+=“”;
htmlGen+=“|”;
this.Literal1.Text=htmlGen+“”;
FormsAuthentication.RedirectToLoginPage();
}
无论我做什么,这似乎都不起作用(不会点火、不会注销等)。作为一个HTML字符串对一个文本执行此操作是否会导致这种情况

有人能告诉我怎么做吗


谢谢

首先,您尝试使用javascript客户端事件(onlick=“…”)进行回发。另外,在代码隐藏中使用ASP.net指令也不起作用。事实上,如果您现在在浏览器上检查呈现的HTML,您可能有以下内容:

onclick="<%=LogOut_OnClick%>"

但是,你确实应该考虑将所有这些代码以某种方式放在你的ASPX文件中。我会这样做:

Welcome, <%= UserName %> (<asp:LinkButton ID="LogoutButton" Text="Logout" runat="server"/>)
欢迎,()
[...] htmlGen += "onclick=\"__dopostback('" + LogOutButton.ID + "')\""; [...]
Welcome, <%= UserName %> (<asp:LinkButton ID="LogoutButton" Text="Logout" runat="server"/>)