MVC/javascript竞争条件?

MVC/javascript竞争条件?,javascript,model-view-controller,race-condition,Javascript,Model View Controller,Race Condition,我正在创建一个mvc应用程序。 我使用sessionStorage跟踪数据库的脏状态 在导航栏菜单中,我有: <li>@Html.ActionLink("Monthly Service", "SideBySide", "TubShop", new { onclick = "SaveAlert(event);" })</li> 但是,如果我敢检查新页面加载的脏位,则不会显示警报。对此进行调试后

我正在创建一个mvc应用程序。 我使用sessionStorage跟踪数据库的脏状态

在导航栏菜单中,我有:

<li>@Html.ActionLink("Monthly Service", "SideBySide", "TubShop", new { onclick = "SaveAlert(event);" })</li>
但是,如果我敢检查新页面加载的脏位,则不会显示警报。对此进行调试后,sessionState[“DbDirty2”]确实为true。每当用户对他们正在处理的表进行更改时,就会设置为“很久以前”

function SaveAlert(e)
{
   if(sessionState["DbDirty2"] == true)
   {
        alert("Save your work");
        e.preventDefault();
   }
}
作为一个测试,我尝试了这个和这个“工作”,但没有条件

function SaveAlert(e)
{
   alert("Save your work");
   e.preventDefault();
}
function SaveAlert(e)
{
   if(true)
   {
        alert("Save your work");
        e.preventDefault();
   }
}
我曾尝试将“DbDirty2”提取到Razor变量中,并将其作为第二个参数与事件一起发送,但DbDirty已过时,因为它是在页面加载时提取的,而不是在用户单击链接时提取的


有更好的方法吗?

是将
sessionState[“DbDirty2”]
设置为
“true”
还是
true
?因为
'true'==true
false
@Sani Singh Huttunen。非常感谢。这在观察名单上是“真实的”。我没有注意那些引语,自鸣得意地知道我在里面塞了一个布尔值。sessionStorage[“DbDirty2”]=true;但它确实是一根弦愚蠢的会话状态。还有愚蠢的罗恩。非常感谢。那是一个我不会回来的周末。:-)