Asp.net mvc 如何使用Razor检查会话变量是否存在
我想使用以下行检查会话变量是否存在:Asp.net mvc 如何使用Razor检查会话变量是否存在,asp.net-mvc,razor,Asp.net Mvc,Razor,我想使用以下行检查会话变量是否存在: if (@Session["LoginAttempts"]!=null && (int)@Session["LoginAttempts"] > 3 && dto.Captcha.length == 0) { } 我在上收到错误的语法消息=null我想,您需要在会话之前丢失“@”,并在会话之前保留它,如果。我建议将Razor变量放入脚本块: @{ var loginAttemptsExceeded = ((in
if (@Session["LoginAttempts"]!=null && (int)@Session["LoginAttempts"] > 3 && dto.Captcha.length == 0)
{
}
我在
上收到错误的语法消息=null
我想,您需要在会话之前丢失“@”,并在会话之前保留它,如果。我建议将Razor变量放入脚本块:
@{
var loginAttemptsExceeded = ((int)Session["LoginAttempts"] > 3).ToString().ToLower();
}
然后在JavaScript中:
var loginAttemptsExceeded = @loginAttemptsExceeded;
if (loginAttemptsExceeded && dto.Captcha.length === 0)
{
....
}
但是您应该做的是为包含视图所需信息的视图返回强类型的ViewModel
。我不能这样做,因为&&dto.Captcha.length==0
是javascript。问题中应该包括混合客户端和服务器端逻辑的事实,因为这会产生很大的不同。我更新了我的答案。您必须ToString().ToLower()
loginatTestSexceeded
,以便JS可以将该值作为有效的JS bool读取。