ASP.NET MVC3 RC RC RAZOR Просмотров: синтаксис для встраивания кода внутри Block

StackOverflow https://stackoverflow.com/questions/4204669

  •  25-09-2019
  •  | 
  •  

Вопрос

Возникли проблемы с встранен к коду C # внутри блока JavaScript с MVC3 RC1. Вид из бритвы. Какой синтаксис должен использовать, чтобы сделать эту работу? Я получаю предупреждения, например. Ожидаемая постоянная на переменную 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