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

Tra*_*s J 5 javascript c# razor asp.net-mvc-3

生成的错误是"条件编译已关闭".

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

有几个像这样的问题: 在Razor中关闭了条件编译?

他们都指出了答案:

/*@cc_on @*/
Run Code Online (Sandbox Code Playgroud)

从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>
Run Code Online (Sandbox Code Playgroud)

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

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

Kyl*_*man 8

尝试围绕你的js <text></text>

<script type="text/javascript">
 @for(int i = 0; i < 5; i++)
 {
    <text>var that = this;</text>
 }
</script>
Run Code Online (Sandbox Code Playgroud)

  • "@:document.write(@i)`更简洁,IMO.换句话说,使用`@:`而不是`<text>`标签. (3认同)