Каков правильный синтаксис бритвы для вложенных и смешанных блоков кода?
У меня есть синтаксис бритвы, который вложен и смешан с html и javascript.
Он работает нормально, за исключением случаев, когда я делаю автоматический формат кода, }
продолжает толкаться с места.
@section js{
<script type="text/javascript">
$(document).ready(function () {
@if (ViewBag.Searched && ViewBag.Found)
{
@:$('#found').show(); $('#permit-info').show();
@if (ViewBag.PendingRequest)
{
@:$('#request-info').hide(); $('#report-info').show();
}
else
{
@:$('#request-info').show(); $('#report-info').hide();
}
}
else
{
@if (ViewBag.Searched)
{
@:$('#not-found').show();
} // <----- PROBLEM. this } doesn't stay at the right place.
}
});
</script>
}
1 ответ
Решение
У вас есть дополнительный @
на этой линии:
@if (ViewBag.Searched)
и эта строка:
@if (ViewBag.PendingRequest)
Потому что вы уже в коде бритвы (регулируется родителем if
/else
заявления).
На самом деле, это все еще убивает формат. Хотя, если вы попробуете использовать <text>
теги вместо @:
оно работает. Попробуй это:
$(document).ready(function () {
@if (ViewBag.Searched && ViewBag.Found)
{
<text>$('#found').show(); $('#permit-info').show();</text>
if (ViewBag.PendingRequest)
{
<text>$('#request-info').hide(); $('#report-info').show();</text>
}
else
{
<text>$('#request-info').show(); $('#report-info').hide();</text>
}
}
else
{
if (ViewBag.Searched)
{
<text>$('#not-found').show();</text>
}
}
});
Примите к сведению: Visual Studio всегда делает отступы от просмотра бритвы плохо:)