我正在尝试清除会话并关闭注销链接上的浏览器选项卡。请帮我这样做。
提前致谢
答案 0 :(得分:0)
您可以向清除会话变量的操作方法发送ajax请求,在回调中,您可以关闭窗口。
<a id=logoutLink">Logout</a>
<script type="text/javascript">
$(function(){
$("#logoutLink").click(function(e){
e.preventDefault();
$.post("@Url.Action("Logout","User")",function(res){
if(res.status==="done")
{
//close the window now.
window.close();
}
});
});
});
</script>
现在在UserController中,添加Logout操作方法
public class UserController : Controller
{
[HttpPost]
public ActionResult Logout()
{
Session.Abandon();
return Json(new { status="done"});
}
}
答案 1 :(得分:0)
您正在尝试实现两个不同的事情,其中一个是服务器端问题,另一个是客户端问题。
您可以尝试分解这些问题,例如:
答:使用标签关闭javascript
的一些Post/Redirect/GetB:更客户端的方法
答案 2 :(得分:0)
Session.Abandon();
or
Session.Clean();
or
Session[".."]=null;
关闭窗口,你可以使用js
windows.close();
在某些浏览器中,它会弹出确认
答案 3 :(得分:0)
此代码来自MSDN。我已经在jQuery调用中添加了async:false,因为这是确保调用刷新服务器端会话然后窗口关闭的关键。
<script type="text/javascript">
$(document).ready(function () {
window.addEventListener('beforeunload',recordeCloseTime);
});
function recordeCloseTime() {
$.ajax({
type: "POST",
async: false,
url: "ServiceToClearSession.asmx/RecordCloseTime",
});
}
</script>