混合Razor和Javascript代码
我很困惑如何混合剃刀和JS。 这是我坚持的当前function:
<script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { data.push([ @r.UnixTime * 1000, @r.Value ]); }  如果我可以用<c#></c#>来声明c#代码,其他所有东西都是JS代码 – 这就是我所追求的: 
 <script type="text/javascript"> var data = []; <c#>@foreach (var r in Model.rows) {</c#> data.push([ <c#>@r.UnixTime</c#> * 1000, <c#>@r.Value</c#> ]); <c#>}</c#> 
什么是最好的方法来实现这一目标?
 使用<text> : 
 <script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { <text> data.push([ @r.UnixTime * 1000, @r.Value ]); </text> } </script> 
 在一个代码块(例如@foreach )中,您需要使用@:或<text>标记来标记标记(在本例中为Javascript)。 
 在标记上下文中,您需要用代码块( @{ ... }或@if ,…)围绕代码 
你也可以简单的使用
 <script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { @:data.push([ @r.UnixTime * 1000, @r.Value ]); } </script> 
注意@:
永远不要混合更多的语言。
 <script type="text/javascript"> var data = @Json.Encode(Model); // !!!! export data !!!! for(var prop in data){ console.log( prop + " "+ data[prop]); } 
在JS脚本里面用@ {}包装你的Razor代码,注意只使用@有时候它不起作用:
 function hideSurveyReminder() { @Session["_isSurveyPassed"] = true; } 
这会产生
 function hideSurveyReminder() { False = true; } 
在浏览器=(