43 votes

Razor Helper Syntaxe Formatage automatique laid. Comment le corriger ?

J'ai juste un problème avec la façon dont Visual Studio formate le code razor. J'ai toujours eu des problèmes avec Visual Studio et la façon dont il formate le code UI, il semble toujours faire un super mauvais travail que l'industrie ne veut pas suivre.

L'exemple a donc l'air vraiment très stupide. Et j'essaie de savoir s'il existe des mods ou des moyens de résoudre ce problème. C'est juste que ça a l'air vraiment très mauvais.

Quelqu'un sait-il quelque chose à ce sujet ? lol

@using Company.Mobile2.Enums
@helper BidsByShipment(string generatedId, int bidsCount, int activeBidsCount)
    {
        if (bidsCount > 0)
        {
    <a class="Company-listview-link Company-listview-bids" href="stackoverflow.com/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>
        }
}

2 votes

J'ai le même problème, et je n'ai pas trouvé de moyen de le résoudre :( Souvent VS met un espace devant mon "{". Il faut vraiment travailler dessus :(

0 votes

Oui, c'est un petit déjeuner de chien, c'est sûr. Ça me rend dingue aussi, surtout depuis qu'il a été cassé pour la dernière fois...

2 votes

J'aimerais que VS nous donne simplement l'option de ne pas formater du tout le code de l'interface utilisateur.

5voto

Alpha Points 2146

Apparemment, il n'y a pas de moyen de contourner ce problème pour le moment, c'est ce qu'ils ont répondu dans une autre question connexe : Pourquoi le formatage du code de Visual Studio ne fonctionne-t-il pas correctement pour le balisage Razor ?

1voto

Josh Points 1001

Visual Studio est-il configuré pour utiliser l'indentation par tabulation ? Cela révèle un bogue de formatage de Razor qui insère des espaces au lieu de tabulations comme il se doit. La solution consiste à passer à l'indentation par espace.

0voto

Paul Mendoza Points 2822

Le code C# est formaté séparément du code HTML. Si vous voulez une indentation correcte, il suffit de placer des balises inutiles là où vous attendez une indentation et vous obtiendrez l'indentation. Ce serait cependant un anti-modèle.

Voici le code. Pour une fonction comme celle que vous avez définie, je ne suis pas sûr que cela fonctionne vraiment.

@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="http://stackoverflow.com/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>

3 votes

Je ne vois pas comment même cela pourrait résoudre le problème. La mauvaise indentation est sur le html, pas sur le c#. Alors comment le fait de mettre des balises enveloppes pourrait-il résoudre le problème, les balises enveloppes seraient toujours indentées de manière incorrecte ? Un petit exemple pourrait peut-être vous aider ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X