MVC在暂停四秒后重定向到另一个页面
MVC redirect to another page after a four second pause
我对MVC比较陌生,但我有一个问题:
目前,当用户第一次登录我们的网站时,他们会被重定向到更改密码页面;他们必须更改密码才能访问网站的任何主要功能。在他们成功更改密码后,我想在更改密码页面上显示我的自定义"密码成功更改"消息;我现在就是这么做的。在我的更改密码页面上显示自定义消息后,我想等待几秒钟,然后将它们重定向到主页。
我希望能够做这样的事情:
//User successfully changes password on ChangePassword page
return View(); //This keeps them on the ChangePassword page and shows the success message
//Wait five seconds on ChangePassword page
//Redirecttoaction("Index", "Home");
谢谢!
你不能在服务器端这样做,你必须使用javascript。你可以使用
window.setTimeout(function(){
window.location.href='your URL';
}, 4000);
您可以考虑的另一种方法是老式的元刷新
<meta http-equiv="refresh" content="4; url=http://example.com/">
你可以用模型上的属性或ViewBag
中的值来控制它@if(Model.DoRedirect) {
<meta http-equiv="refresh" content="4; url=http://example.com/">
}
因为这需要在标题中,你可能需要在你的_layout
中放一个标题"section"<head>
...
@RenderSection("header", required: false)
</head>
你可以在你的视图中使用,比如
@section header
@if(Model.DoRedirect) {
<meta http-equiv="refresh" content="4; url=http://example.com/">
}
}
您必须在客户端上执行此操作,因为您的服务器处理结束于return View();对于请求。您在客户端上有几个选项,例如,使用javascript计时器,并在这么多毫秒后调用下一个操作。
function onTimerElapsed(){
window.location='@Url.Action("SomeAction","SomeController")';
}
"等待4秒"部分发生在客户端,因此结果重定向也应该是客户端。在JavaScript中,你可以在4秒后重定向,像这样:
setTimeout(function () {
window.location.replace('@Url.Action("Index", "Home"')
}, 4000);
注意使用Url.Action()
helper方法将结果URL注入JavaScript代码。
相关文章:
- 如何在一页网站中使用PHP重定向到一个页面
- php重定向到一个空白页面
- 在发布表单输入时,我可以重定向到一个新的php文件吗
- Firefox弹出窗口“;这个网页被重定向到一个新的位置“;在每个requestPromise ajax调用上,有什么方
- Facebook重定向到一个空白的权限请求页面
- 如何在组合框值更改时自动重定向下一个 jsp 页面
- 如何在更改字段中的选择后重置另一个字段中的数据
- 如果另一个下拉列表选择发生更改,则重置另一个下拉列表
- 重置另一个字段Primefaces的字段值
- javascript可以将我的页面重定向到一个url,如果失败,则不会发出警报
- 点击产品,它会自动重定向另一个网站
- 在选择电台,重定向到一个链接
- Phonegap Hybrid App - JavaScript重定向使一个绝对定位的元素闪烁并显示后面的内容
- 我需要做一个网站重定向到一个页面后21.45至10.00
- 如何使javascript加载新数据每次(不使用缓存数据),当我重定向到一个处理程序(页)在鼠标点击
- 重定向选择一个选择输入
- 我如何得到chrome.tab .update重定向到一个url
- 检查在旧版Internet Explorer中事件重定向期间一个事件是否与另一个事件相同
- 等待两秒钟,然后在jquery中自动重定向另一个页面
- Php重定向到一个服务器到另一个服务器的Php页面