我需要在javascript函数中评估一个razor变量。给出以下代码:
@{var unseenNotificationsExist = false;}
@foreach(var notification in viewModel)
{
if (notification.WasSeen == false)
{
unseenNotificationsExist = true;
break;
}
}
我需要在javascript中评估unseenNotificationsExist变量,如下所示:
if(@unseenNotificationsExist == true)
$('#unseenNotifCount').addClass('notifNotSeen');
然而,当我调试javascript代码时,我得到了这个:
if(True == true)
并且我得到一个Uncaught ReferenceError True未定义
答案 0 :(得分:4)
var unseenNotificationsExist = @(unseenNotificationsExist?"true":"false") ;
//the line above must be part of your view
if( unseenNotificationsExist == true)
$('#unseenNotifCount').addClass('notifNotSeen');
//this can be part of your js file or alternatively and less
//preferably part of your view
答案 1 :(得分:3)
我找到了一个解决方法:我添加了这个
var True = true
现在,在javascript中定义了一个变量“True”,评估结果为True == true,返回true。
答案 2 :(得分:1)
每当我想将模型数据转换为JSON对象或JSON变量时,我更喜欢使用 Json.Encode 。
用于将模型的对象(dto)转换为javascript
var accountDto = @Html.Raw(Json.Encode(@Model.AccountDto))
用于转换模型
的(bool)属性var isTrue = @Json.Encode(Model.IsTrue)
答案 3 :(得分:0)
如果您不想渲染JavaScript,请使用Daniele的建议。
如果您坚持在JavaScript中进行比较:
if(@unseenNotificationsExist.ToString().ToLower() === true)
答案 4 :(得分:-1)
尝试使用
if('@unseenNotificationsExist')
答案 5 :(得分:-1)
您尝试过:
if('@unseenNotificationsExist' === 'True')
$('#unseenNotifCount').addClass('notifNotSeen');