如何在 javascript 脚本标签中使用 razor for 循环?
Posted
技术标签:
【中文标题】如何在 javascript 脚本标签中使用 razor for 循环?【英文标题】:How can a razor for loop be used in a javascript script tag? 【发布时间】:2012-07-03 09:36:08 【问题描述】:生成的错误是“条件编译已关闭”。
来自 MSDN 的条件编译 hack 很普遍,但失败了。
有几个这样的问题: 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>
这将导致“条件编译已关闭”消息。尝试在其中插入解决方法将导致来自 for 循环的各种其他消息,例如“cc_on”在上下文中不存在”、“预期”或“预期;”或“预期)”。
【问题讨论】:
这看起来像是***.com/questions/4599169/…的副本 @HatSoft - 大多数情况下是这样,尽管他们没有提到这个问题的目的的条件编译警告。在这里使用@:
和<text>
可以从razor 生成javascript,但“条件编译”的警告仍然存在。
【参考方案1】:
试着用<text></text>
包围你的js
<script type="text/javascript">
@for(int i = 0; i < 5; i++)
<text>var that = this;</text>
</script>
【讨论】:
@:document.write(@i)
更简洁,IMO。换句话说,使用@:
而不是<text>
标签。
真的吗?我不知道@:
。
它仅用于 以上是关于如何在 javascript 脚本标签中使用 razor for 循环?的主要内容,如果未能解决你的问题,请参考以下文章
如何缓存使用脚本标签下载的已下载 javascript 文件