VS11拒绝了<script>中的Razor @if

Jam*_*mes 10 syntax-highlighting visual-studio razor asp.net-mvc-4

以下标记是否不正确,或者它是MVC4中Razor引擎中的错误?无论哪种方式,最好的解决方法是什么?

显示View1.cshtml的全部内容.它编译得很好,但Intellisense错误突出显示很烦人.(包含在图像中,以便您可以看到VS11如何拒绝语法.)

标记突出显示

不接受@:语法(而不是<text></text>)的Hote .

Toh*_*hid 5

将JavaScript与Razor混合起来有点棘手.就个人而言,我发现使用Razor @function或Razor自定义分离这两个人更容易@helper.

这是一个简单的例子:

<script type="text/javascript">
    function btn_clicked() {
        @generateMyJavaScript()
    }
</script>

<a href="javascript:void(0)" onclick='btn_clicked()'>Click on me</a>

@functions {
    private MvcHtmlString generateMyJavaScript()
    {
        string jsBuilder = string.Empty;
        if (true)
            jsBuilder = "alert('Hey!');";
        return MvcHtmlString.Create(jsBuilder);
    }
}
Run Code Online (Sandbox Code Playgroud)