经与的 MVC3 RC1 剃刀视图一个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>
有帮助吗?

解决方案

您需要<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> 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top