Ответ 1
Тег <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
, хорошо, Razor Intellisense все еще находится в состоянии бета-версии, так что он далеко не идеален. Это просто предупреждение, которое вы можете спокойно игнорировать. Важно то, что приложение работает и испускает действительный HTML. Надеюсь, что это будет исправлено в конечном продукте. Из личного опыта единственными предупреждениями, которые я доверяю, является тот, который испускается компилятором С#. Когда я работаю в представлении, я спокойно игнорирую все дерьмовые предупреждения, которые Visual Studio испускает, потому что я знаю, что это неправильно.