4

我有一个使用单个页面的 ASP.NET Web 应用程序,但在整个工作流程中使某些控件不可见,而其他控件则可见。这是一个相当简单的应用程序,这就是它只使用一个页面的原因。

我不确定当用户单击取消按钮或完成工作流程时如何重新加载页面。以下是有关应用程序工作流程的一些详细信息...

  • 该页面加载并显示一个 LoginTable 控件,其中包含一个包含员工姓名的下拉列表、一个用于输入所选员工的密码的密码键盘和一个登录按钮。
  • 单击登录按钮时,将在验证 pin 的位置进行回发,如果有效,则包含大部分页面内容(标题除外)的 Table 控件将变为不可见,并且新的 Table 控件将根据当前设置变为可见状态(打卡或打卡)。
  • 此时,无论是ClockInTable 还是ClockOutTable 控件都是可见的,而LoginTable 控件是不可见的。用户可以单击“取消”按钮或“打卡/打卡”按钮(如果打卡,还可以选择其他一些东西,例如工作地点和工作)。

我想要的是,当用户单击“取消”、“打卡”或“打卡”按钮(在回发的任何其他处理之后)时,页面再次加载新会话并再次显示主 LoginTable,就像用户有重新启动浏览器并第一次打开该页面。

我试过使用 Session.Abandon(),然后在 Global.asax Session_End 事件中,我做 Response.Redirect("Login.aspx");

但这不起作用;它仍然只是重新加载页面的相同视图。

你如何重新加载页面(不刷新页面),就好像它是第一次访问(即不是回发)?

另外,我是 ASP.NET 的新手,所以如果我误解了会话的工作原理,请告诉我。

4

3 回答 3

1

您是否尝试过 Response.Redirect()-ing 用户到同一页面?这应该像加载新页面一样加载页面。但它不会丢失会话数据。

于 2012-10-25T17:32:33.667 回答
1

我不确定您是否可以按照您描述的方式进行操作。但是,您可以做的是将标志作为会话变量。说吧IsFirstComer。我不确定您系统的工作流程是如何进行的,但是您可以将其重置为true每次新用户登录(尚未开始工作流程)或退出工作流程(需要重新开始)时,但只要用户启动了您将其设置为的工作流程false。然后可以通过 的值来控制您的控件行为IsFirstComer

于 2012-10-25T17:38:04.393 回答
0

你有没有写:if(!this.IsPostback)Page_Load方法中,然后Response.Redirect(page.aspx)再尝试“”。

于 2012-10-29T05:47:27.903 回答