Asp.Net MVC3 RC剃刀观点:语法嵌入内块
问题描述:
代码时遇到嵌入与MVC3 RC1 Razor视图一个JavaScript块中的C#代码。我应该使用什么语法才能使其工作?我得到警告,例如。 isOk变量的预期常量等等。 (无文本标签,下面的代码不会被识别为的JavaScript)Asp.Net MVC3 RC剃刀观点:语法嵌入内<javascript>块
@{bool isOk = true;}
<script type="text/javascript">
var tmp1 = "";
@if (isOk)
{
<text>
var tmp=""; // this should be interpreted as javascript
</text>
}
</script>
答
您需要<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
警告而言,良好,剃须刀智能感知仍处于测试阶段,因此是远远不够完善。这只是一个你可以放心忽略的警告。重要的是应用程序的工作原理是什么,并发出有效的HTML。希望这是将在最终产品中解决的问题。从个人经验来看,我信任的唯一警告是C#编译器发出的警告。当我在视图中工作时,我安全地忽略了Visual Studio发出的所有糟糕警告,因为我知道这是错误的。
答
另一种(更简洁,更易于阅读IMO)是逃回出来的文字如下:
<script type="text/javascript">
var tmp1 = "";
@if (isOK)
{
@:var tmp = "foo";
}
</script>
+0
在这种情况下是正确的,但在多行块
你说得对,在这种情况下,解析器警告应被忽略。输出结果应该是......谢谢。 – rekna 2010-11-17 14:29:59
不幸的是,这些警告仍然存在于MVC 3(最终版本)中。 – cheeesus 2012-10-01 21:21:40