(index):49 Uncaught SyntaxError: missing ) 在参数列表之后

问题描述

ViewBag.Image = '<image>https://c152688.ssl.cf3.rackcdn.com/tcthh/v10/bg/light/random/singaporecity_light_1280.jpg'

我正在尝试从控制器传递图像 URL 以使用 viewbag 查看。在视图中,我试图将值分配给 div。

<script>
$('#logindiv').css("background-image","url('" + @ViewBag.Image + "')");
</script>

但上面那行给了我

未捕获的语法错误:参数列表错误后丢失)。

解决方法

第一个问题是图像 URL 中不应包含 <image> 标记。那需要删除。

第二个问题是您将 ViewBag 中的内容附加到服务器端。因此,您不需要将它连接到客户端 JS。你只需要在JS内的正确位置输出即可。

ViewBag.Image = 'https://c152688.ssl.cf3.rackcdn.com/tcthh/v10/bg/light/random/singaporecity_light_1280.jpg'
jQuery($ => {
  $('#logindiv').css("background-image",'url("@ViewBag.Image")');
});

注意 JS 必须在 DOM 加载后运行,这就是我添加 document.ready 处理程序的原因,而且 JS 需要在 View 中执行,以便 @ Razor/Blazor 语法将被解释。如果您的 JS 包含在外部 .js 文件中,则您当前的方法将不起作用。

,

请试试这个

$('#logindiv').css("background-image",'url(" + @ViewBag.Image + ")');