1

我尝试添加以下 javascript 代码。

 <script> 
    @if (ViewBag.checkedArtikel != null)
    {
        foreach (int ac in ViewBag.checkedArtikel)
        {
            String temp = "'#addartikel" + ac + "'";
            <text> $(@temp).toggleClass('down');</text>
        }
    }
    </script>

如果我省略了脚本标签,我会得到正确的 jquery 命令:

$('#addartikel1').toggleClass('down');

但是使用脚本标签我得到这个错误:

Uncaught SyntaxError: Unexpected token &
4

2 回答 2

5

您将服务器端 Razor 代码与客户端 javascript 混为一谈。这是使用 JSON 序列化程序的正确方法:

<script type="text/javascript">
    var articles = @Html.Raw(Json.Encode(ViewBag.checkedArtikel ?? new int[0]));
    $(articles).each(function() {
        $('#addartikel' + this).toggleClass('down');
    });
</script>
于 2013-05-17T11:38:36.630 回答
1

使用此代码:

<text>$(@Html.Raw(temp)).toggleClass('down');</text>

或者您可以使用旧代码而不向变量添加引号:

String temp = "#addartikel" + ac;
<text> $('@temp').toggleClass('down');</text>
于 2013-05-17T11:33:45.847 回答