所以我一直在查看相关问题,但我无法弄清楚为什么我的脚本标签格式不正确。
<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 }));
最佳答案
试试这个:
<script language="javascript" type="text/javascript">
var videoHelpUrl = '@Url.Action("Index", "Help", new { Id = 46 })';
console.log(videoHelpUrl);
</script>
console.log 将输出 Url。
注意:请始终牢记,Razor View 中@ 之后的所有内容都将由 Razor 引擎处理。这就是为什么您可以用引号将 @Url.Action(...) 括起来。它会先被 Razor 引擎处理,然后在执行时被 Javascript 处理。
关于javascript - 在 Javascript 中格式化 Razor ViewData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15391575/