[英]Confused by variable scope when mixing Javascript and Razor in ASP.NET MVC3
我有一些由于错误而失败的代码:
The name 'foo' does not exist in the current context
这是由于我感到困惑的可变范围问题。 我认为这应该可行:
var foo = "<ul>";
@for (int i = 0; i < 10; i++)
{
foo += "<li>bar</li>";
}
foo += "</ul>";
Razor语法应调用for循环,并且就JavaScript而言,变量foo
仍在范围内,因为当浏览器解释代码时,该razor语法实际上是不可见的。
但是,我收到的错误消息来自编译器,因此C#试图以某种方式引用foo
。 我缺少什么?如何修改代码,以便输出正确的javascript代码,以便像我尝试的那样将<li>bar</li>
起来?
代码块(例如for
循环)的内容被假定为服务器端代码。
您需要使用<text>
特殊标记明确告知Razor它是标记。
@{
var foo = "<ul>";
for (int i = 0; i < 10; i++)
{
foo += "<li>bar</li>";
}
foo += "</ul>";
}
或这个
@var foo = "<ul>";
@for (int i = 0; i < 10; i++)
{
foo += "<li>bar</li>";
}
foo += "</ul>";
现在整个方面都被认为是剃刀,包括var foo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.