MVC3 Razor - операторы Javascript с вложенным сервером ifs - PullRequest
4 голосов
/ 20 апреля 2011

Почему движок шаблонов бритвы не любит:

@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 ]

1 голос
/ 20 апреля 2011

Razor не любит теги внутри блока скрипта, поэтому он вызывает проблемы с анализом.Если вам действительно нужен код, просто проигнорируйте предупреждение.

для хихиканья, переименуйте «script» в textarea и посмотрите, работает ли он.

0 голосов
/ 20 апреля 2011

Ваш синтаксис выглядит нормально.Не могли бы вы подтвердить, что во время выполнения страница дает то, что вы ожидаете?Движок IntelliSense для Razor v1 все еще имеет некоторые особенности, особенно если у вас есть C # внутри JavaScript внутри HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...