Razor Helper Синтаксис Автоформатирование Гадкий. Как исправить? - PullRequest
38 голосов
/ 23 июня 2011

Так что я просто хочу сказать, как Visual Studio форматирует бритвенный код. У меня всегда были некоторые проблемы с визуальной студией и с тем, как она форматирует код пользовательского интерфейса, всегда кажется, что это действительно очень плохая работа, которой индустрия не хочет следовать.

Так что пример выглядит очень глупо. И я пытаюсь выяснить, есть ли моды или способы решить эту проблему. Это выглядит очень плохо.

Кто-нибудь знает что-нибудь об этом? лол

@using Company.Mobile2.Enums
@helper BidsByShipment(string generatedId, int bidsCount, int activeBidsCount)
    {
        if (bidsCount > 0)
        {
    <a class="Company-listview-link Company-listview-bids" href="/Shipping/Bids/ByShipment?id={0}">
        @if (activeBidsCount > 0)
        {
            <text>@bidsCount (@activeBidsCount @GetStr("Company"))</text>
        }
        else
        {
            <text>@bidsCount</text>
        }
    </a>
        }
        else
        {
    <text>0 @GetStr("Company")</text>
        }
}

Ответы [ 5 ]

4 голосов
/ 03 августа 2011

Похоже, что сейчас нет пути к этому, вот что они ответили на другой связанный вопрос: Почему форматирование кода Visual Studio не работает должным образом для разметки Razor?

1 голос
/ 17 января 2013

Есть ли у вас Visual Studio, настроенный для использования отступов табуляции?Это выявляет ошибку форматирования Razor, когда он вставляет пробелы вместо вкладок, как и должно быть.Обходной путь должен переключиться на пробел.

0 голосов
/ 19 апреля 2018

я делаю расширение для форматирования бритвенного документа.

Установите:

1) в расширениях для поиска "razor-formatter"

2) нажмите CTRL + P AND, затем введите команду ниже и нажмите enter:

ext install Kookweb.razor-formatter

Ссылка на торговой площадке VSCode:

https://marketplace.visualstudio.com/items?itemName=Kookweb.razor-formatter

источник на github:

https://github.com/Kookweb-ir/razor-formatter

Конечно, это не лучший форматер, но пока это только форматер.

Это простой HTML-элемент, работающий с бритвенными документами.Я буду счастлив, если кто-то будет работать над этим и сделает его идеальным.

0 голосов
/ 06 марта 2018

Для всех, кто интересуется Visual Studio, я думаю, что это довольно впечатляюще, что он позволяет вам переключаться между HTML и C #, не сообщая, какой язык вы используете.

На более практическом замечании ядумаю, мой совет будет сочетать много вещей, показанных выше.В частности ...

  1. Избегайте использования @: для обозначения литеральной строки HTML.Visual Studio часто добавляет строку после него, когда вы переформатируете свой код, и даже когда это не так, вы можете оказаться в бесконечной рекурсии, используя @, чтобы потом вернуться к коду и так далее.Используйте WriteLiteral для вещей, не закодированных в тегах HTML, как предложено выше;в противном случае Visual Studio обнаружит HTML при использовании.Если ...
  2. ... вы используете фантастическую идею вставки кода в блок @ {...}.

Учитывая эти два, я обнаружил, что 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 выше.

0 голосов
/ 27 июля 2011

Формат кода C # отдельно от кода HTML. Если вам нужен правильный отступ, просто поместите несколько бесполезных тегов-оберток, где вы ожидаете, что отступ будет, и вы получите отступ. Это было бы анти-паттерном, хотя.

Вот код. Для функции, как вы определили, я не уверен, что это на самом деле работает.

@using Company.Mobile2.Enums
<div>

@helper BidsByShipment(string generatedId, int bidsCount, int activeBidsCount)
    {
        if (bidsCount > 0)
        {
         <a class="Company-listview-link Company-listview-bids" href="/Shipping/Bids/ByShipment?id={0}">
        @if (activeBidsCount > 0)
        {
            <text>@bidsCount (@activeBidsCount @GetStr("Company"))</text>
        }
        else
        {
            <text>@bidsCount</text>
        }
        </a>
        }
        else
        {
         <text>0 @GetStr("Company")</text>
        }
}
<div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...