【问题标题】:How to revert the boolean value in razor view using jquery?如何使用 jquery 恢复剃刀视图中的布尔值?
【发布时间】:2020-11-30 18:37:03
【问题描述】:

我只是剃刀视图的新手。我无法从 jquery 更改布尔值。我的代码是:

@{ var edits = true;}
<button id="btnEditWorkPerformed" class="btn btn-sm btn-primary pull-right" style="margin-top: 10px;">Edit</button>

在 jquery 中我正在尝试:-

 $('#btnEditWorkPerformed').click(function (event) {
                    event.preventDefault();
                    @edits = !@edits
                    //alert('Lionel');
                    console.log(@edits)
                   });

在控制台中尝试此操作时,我在控制台中遇到错误

真没有定义

如何在按钮单击时恢复 bool 的值?

【问题讨论】:

  • 在做@edits = !@edits之前,你有没有调试过代码看@edits的typeof和value是什么?

标签: javascript jquery razor razor-pages


【解决方案1】:

Razor @edits 是服务器端变量 - 您无法更改此客户端。

解决方案是将其转换为 javascript 变量,以便可以在客户端进行更改。

<script>
    var edits = @(edits ? "true" : "false");
</script>

还有其他方式,但注意@edits.ToString()返回True/Falsetrue/false不一样,所以不是var edits = @edits的情况。

此时您可以使用edits 作为javascript 变量(即没有@):

event.preventDefault();
edits = !edits;
console.log(edits);

【讨论】:

    【解决方案2】:

    你也可以试试下面的代码sn-p:

     $('#btnEditWorkPerformed').click(function (event) {
                          event.preventDefault();
                          var edit =  (!"@edits");
                          console.log(edit);
                   });
    

    如果没有引号,javascript 将尝试将 True 解释为值/表达式。 javascript 中没有本地定义的值 True 。它是“真”,但 javascript 区分大小写,因此它不会将“真”绑定到真。

    var 编辑 = (!"@edits");这里将 js 变量 edit 赋值为 razor 变量 @edits 的反转值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 2013-06-05
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      相关资源
      最近更新 更多