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