如何解决这个Javascript/Razor问题?

use*_*454 1 c# jquery razor asp.net-mvc-4

我尝试添加以下javascript代码.

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

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

$('#addartikel1').toggleClass('down');
Run Code Online (Sandbox Code Playgroud)

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

Uncaught SyntaxError: Unexpected token &
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 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>
Run Code Online (Sandbox Code Playgroud)