1

因此,我一直在查看相关问题,但无法弄清楚我的脚本标签格式错误的确切原因。

<script language="javascript" type="text/javascript">
    var showME = false;
    var showSuffix = "";

    @if (ViewData["showME"] != null && ViewData["showSuffix"] != null)
    {
        <text>
        showME = @(Convert.ToBoolean(ViewData["showME"]) ? "true" : "false");
        showSuffix = '@Html.Raw(Json.Encode(ViewData["showSuffix "]))';
        </text>
    }
</script>

编辑!下面的答案是正确的,但我将格式错误的部分追踪到了这一行。

var videoHelpUrl = @(Url.Action("Index", "Help", new { Id = 46 }));
4

2 回答 2

1

如果您尝试使用 double {{ }} ;

@{

    if (ViewData["showME"] != null && ViewData["showSuffix"] != null)
    {
        <text>
        showME = @(Convert.ToBoolean(ViewData["showME"]) ? "true" : "false");
        showSuffix = '@Html.Raw(Json.Encode(ViewData["showSuffix "]))';        
        </text>
    }

}

看看这是否有效。

于 2013-03-13T17:00:58.693 回答
1

试试这个:

<script language="javascript" type="text/javascript">
    var videoHelpUrl = '@Url.Action("Index", "Help", new { Id = 46 })';
    console.log(videoHelpUrl);
</script>

console.log 将输出 URL。

注意:请始终记住,Razor 视图中 @ 后面的所有内容都将由 Razor 引擎处理。这就是为什么您可以用引号将 @Url.Action(...) 括起来。它将首先由 Razor 引擎处理,然后在执行时由 Javascript 处理。

于 2013-03-13T19:07:21.807 回答