如何解决这个Javascript/Razor问题
本文关键字:Javascript Razor 问题 何解决 解决 | 更新日期: 2023-09-27 18:13:58
我尝试添加以下javascript代码。
<script>
@if (ViewBag.checkedArtikel != null)
{
foreach (int ac in ViewBag.checkedArtikel)
{
String temp = "'#addartikel" + ac + "'";
<text> $(@temp).toggleClass('down');</text>
}
}
</script>
如果我省略script标签,我得到正确的jquery命令:
$('#addartikel1').toggleClass('down');
但是使用script标签我得到这个错误:
Uncaught SyntaxError: Unexpected token &
你有非常糟糕的混合服务器端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>
使用以下代码:
<text>$(@Html.Raw(temp)).toggleClass('down');</text>
或者你可以使用你的旧代码而不给变量添加引号:
String temp = "#addartikel" + ac;
<text> $('@temp').toggleClass('down');</text>