ASP.NET MVC3 RC RC RAZOR Просмотров: синтаксис для встраивания кода внутри Block
-
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>