私は MVC アプリケーションを作成しています。アプリケーション (つまり、ウィンドウ/タブ) を閉じるときに、セッション内の変数を null にする必要がありましたが、アプリケーションを更新するときではありませんでした。以下のコードで試してみました。
<script type="text/javascript">
window.onbeforeunload = function (e) {
e = e || window.event;
if (window.event.keyCode == 116) {
alert("f5 pressed");
}
else {
alert("Window closed");
//call my c# code to make my variable null, eg:Session["myVariable"] = null;
}
};
</script>
しかし、F5 キーを押すと、「window.event.keyCode」は 116 ではなく常に 0 になります。そのため、私の要件ではない F5 キーを押しても変数が null になります。
アプリケーション (つまり Web ページ) が閉じられている場合でも、その 0 (おそらく正しい) です。
コードの上記の部分は .cshtml ファイルにあることに注意してください。
誰がどこが間違っているか教えてもらえますか?