在View.cshtml中我有一个部分,我在其中检查会话中是否存在名为Reservation
的对象<head>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(function () {
if ( @Session["Reservation"] )
{
$('.reservationDetails :input').attr("disabled", false));
$('#termSection :input').attr("disabled", true);
}
});
</script>
</head>
第一次加载页面时,id为termSection的按钮处于活动状态, 但在其他操作中我保存对象保留在会话中此按钮仍处于活动状态,然后我重定向到View.cshtml。我认为问题在于检查来自sesssion的Object是否为空。
答案 0 :(得分:1)
我建议你将if条件移到服务器端。如果预订不存在,则根本不渲染Javascript。
所以,而不是
if ( @Session["Reservation"] )
使用
@if ( Session["Reservation"] != null )
在上下文中:
@if ( Session["Reservation"] != null )
{
$('.reservationDetails :input').attr("disabled", false));
$('#termSection :input').attr("disabled", true);
}
如果Reservation
不为null,则输出Javascript将为:
$(function () {
$('.reservationDetails :input').attr("disabled", false));
$('#termSection :input').attr("disabled", true);
}
如果Reservation
为null,则输出Javascript为:
$(function () {
}
换句话说,它不会做任何事情,这似乎是意图。