![](/img/trans.png)
[英]Redirect from asp.net page to another using javascript function
[英]How to redirect to another page during request in ASP.NET
我有规则的asp.net页面,上面有几个按钮。 我希望有1个类似于Stop Request
按钮,所以无论单击了哪个按钮,用户都可以单击此按钮并刷新我的页面。 所以这是我的想法的例子:
<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" ToolTip="Click to generate report based on parameters selected above"
Text="Run Report" Width="100px" />
<asp:Button ID="btnCancelRequest" runat="server" Text="Stop Request" OnClientClick="javascript:return CancelRequestClick();"/>
因此, btnRefresh
进行回发以执行SQL查询并执行后端逻辑。 假设完成所有过程需要10到20秒。 我还有几个这样的按钮。 它们中的一些执行繁重的sql查询,而另一些则在背面进行一些长时间的执行代码。 我想拥有btnCancelRequest
按钮,该按钮将仅刷新页面,这将带回干净的页面,而无需任何用户更改。
这是JS代码
function CancelRequestClick() {
window.location.href("RateReport.aspx");
return false;
};
有什么方法可以使该JS代码在单击时执行,而不等待响应返回?
使用javascript,window.stop(),停止浏览器加载
function CancelRequestClick() {
window.stop();
window.location.href("RateReport.aspx");
return false;
};
没有javascript,有点棘手,提交表单可以取消其他请求,例如,将虚拟对象提交到同一页面
<form action="YourAspxPage.aspx" method="get">
<input type="submit" value="cancel">
</form>
按取消将向该页面提交伪表格,并停止其他过程
我希望能够取消所有当前请求。 如果用户单击运行按钮并在背面执行升沉查询,或者用户单击按钮并在背面执行任何其他升沉逻辑,我想能够随时取消和刷新页面
首先,HTTP是无状态的。 这意味着当服务请求时,UI线程不再可用。 结果,您不知道要取消该任务。
您希望实现的目标是不可能的。 但是,您有解决方法。 触发长期运行的任务后,您可以在数据库中插入一条记录,例如-
UserId, TaskType, IsCancelled
然后让该任务执行,并经常检查IsCancelled标志。
如果要取消它,请将IsCancelled标志设置为true。 当任务看到它时,它将自行取消, 直到您无法执行任何操作为止 。
理想情况下,您希望将诸如Hangfire或Quartz.Net之类的Scheduler用于长时间运行的作业,但这不在您的问题范围内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.