Для всех, кто интересуется Visual Studio, я думаю, что это довольно впечатляюще, что он позволяет вам переключаться между HTML и C #, не сообщая, какой язык вы используете.
На более практическом замечании ядумаю, мой совет будет сочетать много вещей, показанных выше.В частности ...
- Избегайте использования @: для обозначения литеральной строки HTML.Visual Studio часто добавляет строку после него, когда вы переформатируете свой код, и даже когда это не так, вы можете оказаться в бесконечной рекурсии, используя @, чтобы потом вернуться к коду и так далее.Используйте WriteLiteral для вещей, не закодированных в тегах HTML, как предложено выше;в противном случае Visual Studio обнаружит HTML при использовании.Если ...
- ... вы используете фантастическую идею вставки кода в блок @ {...}.
Учитывая эти два, я обнаружил, что CTRL K, D для переформатирования кода дал прекрасные результаты для блока таблицы, который сводил меня с ума:
<table>
<tr>
<th>Chapter</th>
@*<th class="woCoursewareFindTd">Page count</th>*@
<th>Contents</th>
</tr>
@{
foreach (var c in Model.Chapters)
{
if (c.Courseware2Id == c2.Courseware2Id)
{
<tr>
<td>
@{
if (c.ChapterFileName.ToString().ToLower() == "none")
{
WriteLiteral(c.Courseware3Name);
}
else
{
<a href="@c.Href">@c.Courseware3Name (click to download)</a>
}
}
<p>(@c.PageCount page@(c.PageCount == 1 ? "" : "s"))</p>
</td>
<td>
@Html.Raw(c.SectionText)
</td>
</tr>
}
}
}
Отлично!Спасибо всем участникам StackOverflow выше.