如何在javascript脚本标记中使用剃刀for循环?

时间:2012-07-02 23:46:02

标签: c# javascript asp.net-mvc-3 razor

生成的错误是“条件编译已关闭”。

来自MSDN的条件编译黑客很普遍,但失败了。

有几个像这样的问题: Conditional Compilation is turned off in Razor?

他们都指出了答案:

/*@cc_on @*/

从MSDN上看到的文章:

http://msdn.microsoft.com/en-us/library/5y5529x3(v=vs.90).aspx

但是,这个hack很失败,或者我似乎无法实现它。尾随@*会导致.cshtml文件中的剩余代码被注释掉。此外,@cc_on给出错误“cc_on在当前上下文中不存在”。

这是在.cshtml文件中测试的一段代码:

<script type="text/javascript">
 @for(int i = 0; i < 5; i++)
 {
    document.write(@i);
 }
</script>

这将导致“条件编译关闭”消息。试图在其中插入变通方法会导致各种其他消息,例如“cc_on”在for循环中不存在于上下文中,“期望”,“或”期望;“或”预期的“。

如何在javascript脚本标记中使用razor for循环?

1 个答案:

答案 0 :(得分:5)

尝试使用<text></text>

围绕您的js
<script type="text/javascript">
 @for(int i = 0; i < 5; i++)
 {
    <text>var that = this;</text>
 }
</script>