MVC3 Razor - 嵌套服务器ifs的Javascript语句

时间:2011-04-20 15:49:18

标签: javascript asp.net-mvc-3 razor

为什么剃刀模板引擎不像:

@if (Model.ActionComplete) {
  <script type="text/javascript">

      @if (Model.Message.IsString()) {

      }

  </script>
}

我们抱怨Model中的Model.Message应该是一个常量,并且</script>标记缺少@end语句。

我想去:

@if (Model.ActionComplete) {
  <script type="text/javascript">
    $(document).ready(function () {
      $("#user-form").slideUp();
      @if (Model.Message.IsString()) {
        @:showMessageBar("@(Model.Message)");
      }
    });
  </script>
}

2 个答案:

答案 0 :(得分:1)

Razor不喜欢脚本块内的标签,因此导致解析问题。如果你真的想要那里的代码,那么就忽略警告。

giggles,将'script'重命名为textarea并查看它是否有效。

答案 1 :(得分:0)

你的语法看起来很好。您能否确认在运行时页面是否产生您期望的结果? Razor v1的IntelliSense引擎仍有一些怪癖,特别是如果你在HTML里面有JavaScript的C#。