在Javascript中格式化Razor ViewData

在Javascript中格式化Razor ViewData,javascript,razor,viewdata,Javascript,Razor,Viewdata,因此,我一直在研究相关问题,但我无法确切地找出我的脚本标记格式不正确的原因 <script language="javascript" type="text/javascript"> var showME = false; var showSuffix = ""; @if (ViewData["showME"] != null && ViewData["showSuffix"] != null) { <text&

因此,我一直在研究相关问题,但我无法确切地找出我的脚本标记格式不正确的原因

<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>

如果您尝试使用中的双{{}}

@{

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

}
@{
如果(ViewData[“showME”]!=null和&ViewData[“showSuffix”]!=null)
{
showME=@(Convert.ToBoolean(ViewData[“showME”])?“true”:“false”);
showSuffix='@Html.Raw(Json.Encode(ViewData[“showSuffix”]));
}
}
看看是否有效。

试试这个:

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

var videoHelpUrl='@Url.Action(“Index”,“Help”,new{Id=46})”;
console.log(videoHelpUrl);
console.log将输出Url


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

这是正确的,我的问题是错误的。我的问题在于这一行。。思想?var videoHelpUrl=@(Url.Action(“Index”,“Help”,new{Id=46}));是那些引语,绝对没有注意到它们不见了。
<script language="javascript" type="text/javascript">
    var videoHelpUrl = '@Url.Action("Index", "Help", new { Id = 46 })';
    console.log(videoHelpUrl);
</script>