检查模型/会话是否存在并且在JavaScript中不为null
我已经建立了一个退出意图弹出窗口,当用户想要退出站点时将显示它。然后,此弹出窗口将向数据库保存一个条目(只要选择了下拉列表并且客户端具有有效的唯一密钥)。这一切都很好 我面临的问题是,如果用户没有指定有效的唯一键(在提交第一页时创建),则弹出窗口不应显示。此密钥在会话中找到(此会话是类对象) 这就是它的创建方式: 类对象:检查模型/会话是否存在并且在JavaScript中不为null,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我已经建立了一个退出意图弹出窗口,当用户想要退出站点时将显示它。然后,此弹出窗口将向数据库保存一个条目(只要选择了下拉列表并且客户端具有有效的唯一密钥)。这一切都很好 我面临的问题是,如果用户没有指定有效的唯一键(在提交第一页时创建),则弹出窗口不应显示。此密钥在会话中找到(此会话是类对象) 这就是它的创建方式: 类对象: public class PolicyBase { //This will hold the whole object in terms of
public class PolicyBase
{
//This will hold the whole object in terms of the policy
public string SessionKey { get; set; }
public int polKey { get; set; }
//Other items
}
设置会话:
public class SessionHelper
{
#region Session INIT
public static PolicyBase PolicyBase
{
get { return GetSession<PolicyBase>("PolicyBase"); }
set { SetSession("PolicyBase", value); }
}
}
我有没有办法做到这一点?还是有更好的解决办法?
我读过关于等待页面完成加载的内容,但即使完成了加载,上述内容仍然是一个问题)会话变量仅限于服务器端。您必须在显示弹出窗口的位置对服务器进行ajax调用如果您不想进行额外的ajax调用,您可以将对象添加到页面模型并从中绑定。非常感谢,我将尝试ajax调用。将对象添加到页面模型不是首选,因为这将需要在所有页面上完成(需要是通用的,并在所有当前和未来页面中使用)…会话变量仅为服务器端变量。您必须在显示弹出窗口的位置对服务器进行ajax调用如果您不想进行额外的ajax调用,您可以将对象添加到页面模型并从中绑定。非常感谢,我将尝试ajax调用。将对象添加到页面模型不是首选,因为这将需要在所有页面上完成(需要是通用的,并在所有当前和未来页面中使用)。。。。
addEvent(document, "mouseout", function (e) {
e = e ? e : window.event;
var from = e.relatedTarget || e.toElement;
if (!from || from.nodeName == "HTML") {
//if (event.clientY <= 0 || event.clientX <= 0 || (event.clientX >= window.innerWidth || event.clientY >= window.innerHeight)) {
if (event.clientY <= 0 || (event.clientY >= window.innerHeight)) {
$("#dialog-exit-intent").modal("show");
}
}
});
addEvent(document, "mouseout", function (e) {
e = e ? e : window.event;
var from = e.relatedTarget || e.toElement;
// var session = '<%= Session["PolicyBase"] %>';
var session = localStorage.getItem("PolicyBase")
alert(session);
var varQuoteKey = localStorage.getItem("PolicyBase"); // '<%= Session["PolicyBase"] %>';
if (session.val() != null && session.val() != '') {
if (!from || from.nodeName == "HTML") {
//if (event.clientY <= 0 || event.clientX <= 0 || (event.clientX >= window.innerWidth || event.clientY >= window.innerHeight)) {
if (event.clientY <= 0 || (event.clientY >= window.innerHeight)) {
$("#dialog-exit-intent").modal("show");
}
}
}
});
public ActionResult SavePolicyLeaveReason(int exitIntentLeaveReasonKey)
{
var polBase = SessionHelper.PolicyBase;
//some code
if (polBase != null)
{
//some code
polStatus = "T";
}
else
{
polStatus = "F";
}
return Json(polStatus);
}