剃刀@if内 is rejected by VS11(Razor @if inside [remov

2019-06-24 05:06发布

是下面的标记不正确,或者是在MVC4剃刀引擎中的错误? 无论哪种方式,什么是最好的解决办法?

View1.cshtml的全部内容被示出。 它编译罚款,但智能感知错误高亮是烦人。 (包括作为一个形象,你可以看到的语法被VS11拒绝。)

份饭该@:语法(而不是<text></text> )是不能接受的任一。

Answer 1:

这是一个有点棘手剃刀混合的JavaScript。 就个人而言,我觉得它更容易总是通过使用剃刀这两个家伙分开@function或剃刀定制@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);
    }
}


Answer 2:

我注意到语法高亮显示的奇怪的行为了。 这是不是一个真正的答案,但:

  • 我尝试从模型数据混合到JavaScript避而远之。 虽然强大的实在是有点意大利面条一样。
  • 我也尝试有小到中HTML标记可能。 我用js包括和jQuery的$(document)。就绪(函数()...函数中的那些。
  • 在那里,你可以提取这些数据属性和基本的javascript决策的JSON数据。

(想写这作为注释,但没有发现这样做的方式,遗憾的debump)



文章来源: Razor @if inside