4

我需要在 JavaScript 函数中评估一个剃刀变量。给定以下代码:

 @{var unseenNotificationsExist = false;}
 
 @foreach(var notification in viewModel)
 {
    if (notification.WasSeen == false)
    {
      unseenNotificationsExist = true;
      break;
    }
 }

我需要unseenNotificationsExist像这样评估 JavaScript 中的变量:

 if(@unseenNotificationsExist == true)
        $('#unseenNotifCount').addClass('notifNotSeen');

但是,当我调试 JavaScript 代码时,我得到了这个:

if(True == true)

而且我收到以下错误:

Uncaught ReferenceError True 未定义

4

6 回答 6

5
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
于 2013-08-08T08:44:35.697 回答
4

我找到了解决方法:我添加了这个

var True = true

现在,在 javascript 中定义了一个变量“True”,并且评估归结为 True == true,它返回 true。

于 2013-08-08T08:50:44.403 回答
1

每当我想将模型数据转换为 JSON 对象或 JSON 变量时,我更喜欢使用Json.Encode 。

用于将模型的对象(dto)转换为 javascript

var accountDto = @Html.Raw(Json.Encode(@Model.AccountDto))

用于转换模型的(布尔)属性

var isTrue = @Json.Encode(Model.IsTrue)
于 2017-01-18T02:36:35.670 回答
0

如果您不想渲染 JavaScript,请使用 Daniele 的建议。

如果您坚持在 JavaScript 中进行比较:

if(@unseenNotificationsExist.ToString().ToLower() === true)
于 2013-08-08T08:45:15.280 回答
-1

尝试使用

if('@unseenNotificationsExist')
于 2013-08-08T08:42:26.683 回答
-1

您尝试过:

if('@unseenNotificationsExist' === 'True')
        $('#unseenNotifCount').addClass('notifNotSeen');
于 2013-08-08T08:42:32.657 回答