C# 使用主代码隐藏的内容页

C# 使用主代码隐藏的内容页,c#,asp.net,session,C#,Asp.net,Session,我有一个需要用户登录的站点。 登录会创建一个会话,当他们单击“主页”按钮时,该会话会将他们重定向到客户主页(而不是将他们带到非用户主页)。我通过检查session[“Username”]是否有值,以及session[“Loggedin”]是否设置为true(仅在登录时发生) 但是,一旦登录,我就无法注销。我认为这与我的注销按钮是customer.Master页面的一部分这一事实有关,customer主页继承了该页面。母版页中的“注销”按钮后面有清除的代码,但当我现在单击“注销”时,它只是重定向到

我有一个需要用户登录的站点。 登录会创建一个会话,当他们单击“主页”按钮时,该会话会将他们重定向到客户主页(而不是将他们带到非用户主页)。我通过检查
session[“Username”]
是否有值,以及
session[“Loggedin”]
是否设置为true(仅在登录时发生)

但是,一旦登录,我就无法注销。我认为这与我的注销按钮是customer.Master页面的一部分这一事实有关,customer主页继承了该页面。母版页中的“注销”按钮后面有清除的代码,但当我现在单击“注销”时,它只是重定向到客户主页。母版页代码是否被调用

public void Logout(object sender, EventArgs e)
{
    Session.Contents.RemoveAll();
    Session["Loggedin"] = false;
    Session["Username"] = null;
    Response.Redirect("/Pages/Default.aspx");
}
要从另一页调用母版页代码,首先需要使用以下指令在.aspx页上引用它(替换为母版页的路径):

编辑
不同的问题:LinkButton有一个事件处理程序,但它也有一个HRef属性。在它有机会调用代码之前,它正在移动到一个新页面。

要从另一个页面调用您的母版页代码,您首先需要在.aspx页面上使用以下指令引用它(替换为母版页的路径):

编辑


不同的问题:LinkButton有一个事件处理程序,但它也有一个HRef属性。在有机会调用代码之前,它正在移动到新页面。

不要在链接按钮中使用Href,它会在执行onclick事件之前将您移出当前页面。这就是为什么不执行代码隐藏。

不要在链接按钮中使用Href,它会在执行onclick事件之前将您从当前页面中删除。这就是为什么不执行代码隐藏。

只需放置一个断点即可确保调用代码。你试过这个吗?我试过了,但没人叫它。我该怎么做才能让内容页调用母版页代码?还是不是这样?谢谢~创建一个新的带有身份验证的Web表单项目,并查看母版页中如何注销。为什么不将该代码正确地放入母版页的代码中?从客户的母版页上是否始终可以看到“注销”按钮?此代码位于母版页的“代码隐藏”中,当我在内容页上按“注销”按钮时不会调用它(注销按钮也是母版页的一部分)。您可以通过简单地放置断点来确保调用代码。你试过这个吗?我试过了,但没人叫它。我该怎么做才能让内容页调用母版页代码?或者它不这样工作?谢谢~创建一个新的带有身份验证的Web表单项目,并查看母版页中如何注销。为什么不将该代码正确地放入母版页的代码中?从客户的母版页中是否始终可以看到“注销”按钮?此代码位于母版页的代码隐藏中,当我在内容页中按“注销”时不会调用它(注销按钮也是母版页的一部分),我在哪里可以使用“master.myMehod();”?我单击以注销的链接按钮是customer.master页的一部分?啊,我误解了。所以你的链接按钮和注销脚本都在母版页上。我很惊讶那不管用。你的链接按钮的代码是什么?注销看起来不错。您的
响应如何。重定向
呼叫。。。这应该是虚拟路径吗
~/Pages/Default.aspx
从未在HTML中看到ref,您想知道C#ref和HTML href之间的区别吗?我在哪里可以看到“Master.myMehod()”?我单击以注销的链接按钮是customer.master页的一部分?啊,我误解了。所以你的链接按钮和注销脚本都在母版页上。我很惊讶那不管用。你的链接按钮的代码是什么?注销看起来不错。您的
响应如何。重定向
呼叫。。。这应该是虚拟路径吗
~/Pages/Default.aspx
从未在HTML中看到ref,您想知道C#ref和HTML href之间的区别吗?
<%@ MasterType VirtualPath="~/customer.master" %>
var x = Master.myProperty;
Master.myMethod();