Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Razor助手语法自动格式化。如何修复?_Visual Studio_Syntax_Formatting_Razor - Fatal编程技术网

Visual studio Razor助手语法自动格式化。如何修复?

Visual studio Razor助手语法自动格式化。如何修复?,visual-studio,syntax,formatting,razor,Visual Studio,Syntax,Formatting,Razor,所以我对VisualStudio格式化razor代码的方式有意见。我一直对VisualStudio和它如何格式化UI代码有一些问题,它似乎总是做得非常糟糕,这是业界不愿意遵循的 所以这个例子看起来真的很愚蠢。我正试图找出是否有mod或方法来解决这个问题。看起来真的很糟糕 有人知道这件事吗?哈哈 @using Company.Mobile2.Enums @helper BidsByShipment(string generatedId, int bidsCount, int activeBidsC

所以我对VisualStudio格式化razor代码的方式有意见。我一直对VisualStudio和它如何格式化UI代码有一些问题,它似乎总是做得非常糟糕,这是业界不愿意遵循的

所以这个例子看起来真的很愚蠢。我正试图找出是否有mod或方法来解决这个问题。看起来真的很糟糕

有人知道这件事吗?哈哈

@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>
        }
}
@使用Company.Mobile2.Enums
@助手BidsByShipment(字符串generateId、int-bidscont、int-activebidscont)
{
如果(投标报价>0)
{
}
其他的
{
0@GetStr(“公司”)
}
}
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>
@使用Company.Mobile2.Enums
@助手BidsByShipment(字符串generateId、int-bidscont、int-activebidscont)
{
如果(投标报价>0)
{
}
其他的
{
0@GetStr(“公司”)
}
}

显然目前没有办法解决这个问题,这是他们在另一个相关问题中回答的:

您是否已将Visual Studio设置为使用制表符缩进?这揭示了一个剃刀格式错误,它在其中插入空格而不是应该插入的制表符。解决方法是切换到空格缩进。

对于所有pe人们抱怨VisualStudio,我认为它允许您在HTML和C#之间切换,而不被告知您正在使用哪种语言,这给人留下了深刻的印象

从一个更实际的角度来说,我认为我的建议是将上面所示的很多东西结合起来

  • 避免使用@:来表示HTML的文字字符串。当您重新格式化代码时,Visual Studio经常在它后面添加一行,即使它不这样做,您也可以使用@来结束无限递归,然后切换回代码,以此类推。如前所述,对于未在HTML标记中编码的内容,请使用Writeleral;否则,请使用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>
            }
        }
    }
    
    
    章
    @*页数*@
    目录
    @{
    foreach(模型章节中的var c)
    {
    如果(c.Courseware2Id==c2.Courseware2Id)
    {
    @{
    如果(c.ChapterFileName.ToString().ToLower()=“无”)
    {
    书面(c.课件3名);
    }
    其他的
    {
    }
    }
    (@c.PageCount page@(c.PageCount==1?”:“s”))

    @Html.Raw(c.SectionText) } } }


    完美!感谢上面所有的StackOverflow贡献者。

    我为razor文档的格式化做了一个扩展

    安装:

    1) 在扩展中搜索“razor格式化程序”

    2) 按CTRL+p,然后在下面输入命令并按enter键:

    ext install Kookweb.razor-formatter
    
    VSCode市场上的链接:

    github上的来源:

    当然,这不是最好的格式化程序,但这是目前唯一的格式化程序


    这只是一个适用于razor文档的简单HTML美化工具。如果有人对其进行改进,我会很高兴的。

    我也有同样的问题,但还没有找到一个很好的解决方法:(通常VS会在我的“{”前面放一个空格。它肯定需要一些工作:(是的,这是狗的早餐。也让我发疯了-尤其是因为它已经被破坏了…我希望VS能给我们一个选项,不格式化UI代码。技术上可能是我的重复…我先发布了我的。我不知道这怎么解决问题。糟糕的缩进是在html上,不是吗那么放置包装标签如何解决这个问题呢?包装标签仍然会被错误地缩进?也许一个简短的例子会有所帮助?不幸的是,这个扩展已经不复存在了。