在使用 MVC3 RC1 razor视图的javascript块中嵌入c#代码时遇到问题。我应该使用什么语法来使其工作?我得到警告,例如。 isOk变量之间的预期常量。 (没有文本标记,以下代码不被识别为javascript)
@{bool isOk = true;}
<script type="text/javascript">
var tmp1 = "";
@if (isOk)
{
<text>
var tmp=""; // this should be interpreted as javascript
</text>
}
</script>
答案 0 :(得分:28)
您需要<text>
标记来指示未在服务器上评估内容。例如:
@{
var isOK = true;
}
<script type="text/javascript">
var tmp1 = "";
@if (isOK)
{
<text>
var tmp = "foo";
</text>
}
</script>
将在结果页面中输出:
<script type="text/javascript">
var tmp1 = "";
var tmp = "foo";
</script>
就Expected Constant
警告而言,Razor Intellisense仍处于测试阶段,因此远非完美。这只是一个警告,你可以放心地忽略。重要的是应用程序的工作原理是什么,并发出有效的HTML。希望这是将在最终产品中修复的内容。根据个人经验,我信任的唯一警告是C#编译器发出的警告。当我在视图中工作时,我安全地忽略了Visual Studio发出的所有糟糕警告,因为我知道它是错误的。
答案 1 :(得分:9)
另一种选择(更简洁,更容易阅读的IMO)是按照以下方式逃回文本:
<script type="text/javascript">
var tmp1 = "";
@if (isOK)
{
@:var tmp = "foo";
}
</script>