我有一个Web应用程序(帮助台票务系统),带有一个收件箱来监控传入的请求,并制作了一些过滤器按钮,帮助用户根据请求者姓名,创建日期等安排请求.
每个过滤器只会调用同一页面,但会在查询字符串中添加一些代码.例如,如果用户按下标有[按日期排序]的按钮,则该按钮背后的代码如下:
Response.Redirect("Inbox.aspx?Filter=DATE")
Run Code Online (Sandbox Code Playgroud)
另一个按钮将类似地执行:
Response.Redirect("Inbox.aspx?Filter=NAME")
Run Code Online (Sandbox Code Playgroud)
GridView将填充一些行(传入请求的摘要),并按用户的首选项排序.
一旦用户决定查看任何传入请求的完整详细信息,将导致任何行的单击
Response.Redirect("Details.aspx?REQ_ID=123")
'where 123 is the request number the user clicked
Run Code Online (Sandbox Code Playgroud)
然后,用户有机会使用Details.aspx页面上的几个按钮更新/编辑请求,但是每个按钮都需要将用户返回到收件箱,其中包含用户在查看Details.aspx之前具有的过滤器的首选项.页.
换句话说,一旦用户按下Details.aspx页面上的按钮,我想执行以下操作
Sub btnUpdateRequest() Handles btnUpdateRequest.Click
'My code here for the button action (update/edit/send/cancel)
' once the job is done, return the user to the Inbox.aspx page with the same filter
Response.Redirect("javascript:History.Back()")
End Sub
Run Code Online (Sandbox Code Playgroud)
但我知道Response.Redirect不接受javascript,我不想在Code Behind文件和ASPX文件(添加OnClientClick属性)之间拆分代码,因为我需要同时执行VB指令并重定向用户.
您可以重定向到引荐来源网址.您应该首先检查它是否可用.
if (Request.UrlReferrer.AbsoluteUri != null) {
Response.Redirect(Request.UrlReferrer.AbsoluteUri);
}
Run Code Online (Sandbox Code Playgroud)