我正在尝试在asp.net MVC4应用程序中处理由于会话超时引起的异常。每当由于会话过期而发生错误时,我只想向用户显示用户友好的jquery dailog。
现在我已实现如下,但它无法正常工作。请帮忙。
步骤1。在Application_Error方法中,我正在检查用户的会话 可用与否。如果会话不可用,请将用户重定向到 错误页面。
protected void Application_Error(object sender, EventArgs e)
{
if(session["User"] == null)
{
Response.Redirect("/Error/ShowSessionExpires");
}
}
注意 - 在错误控制器中重定向到部分视图“ShowSessionExpires”。
第二步。我在/Error/ShowSessionExpires.cshtml视图中有以下代码, 我在哪里创建并显示一个对话框:
<div id="sessionTimeoutDialog">Sorry, Your session has been expired.</div>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$("#sessionTimeoutDialog").dialog({
title: "Error",
autoOpen: false,
modal: true,
resizable: false,
width: "450",
buttons: {
'Close': function () {
$(this).dialog("close");
}
}
});
$("#sessionTimeoutDialog").dialog("open");
});
</script>
上面的方法显示了消息,但事情是它没有在jquery对话框窗口中显示它。我怀疑上面的javascript代码没有被执行。所以我在javascript代码中添加了警告(“Hi”),然后进行了测试。我仍然没有得到“嗨”警报。所以似乎javascript代码没有执行。请帮助或建议一些更好的方法。