这是我在razor视图中的代码。
@if (ViewBag.CurrentPageId != null)
{
var currentPage = wizard.Pages.FirstOrDefault(p => p.PageId == ViewBag.CurrentPageId);
if (!string.IsNullOrEmpty(currentPage.JavaScript))
{
var a = currentPage.JavaScript.ToString();
<script>alert(a)</script>
}
}
该脚本以currentPage.JavaScript的形式出现在我面前。我想将该脚本添加到我的视图中。但上面的代码给出了错误: a未定义
请帮忙。
答案 0 :(得分:0)
为了完整起见,我将把我的评论表达为一个精心设计的答案。
当使用if, using, for ...
(定义代码块的构造)时,使用@在Razor中启动c#代码行不会将整个块转换为解释的c#razor。
正如在问题中看到的那样,完全可以在这样的块中开始编写Markup。
如果您现在想要使用剃刀代码的变量渲染到标记中,您仍然必须通过添加@
来逃避它们,即使您在“代码块”中也是如此。
@if(...)
{
(...)
<script>alert(@a)</script>
(...)
}