所以我对Visual Studio格式化剃刀代码的方式有了一定的了解。我一直有一些与visual studio有关的问题以及它如何格式化UI代码,它似乎总是做一个真正的超级糟糕的工作,业界不想跟随。
所以这个例子看起来真的很愚蠢。我正在试图弄清楚是否有mods或方法来解决这个问题。它看起来真的很糟糕。
有人对此有所了解吗?洛尔
@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>
}
}
答案 0 :(得分:4)
显然暂时无法解决这个问题,这是他们在另一个相关问题中回答的问题:Why doesn't Visual Studio code formatting work properly for Razor markup?
答案 1 :(得分:1)
您是否将Visual Studio设置为使用制表符缩进?这揭示了一个Razor格式错误,它应该插入空格而不是标签。解决方法是切换到空格缩进。
答案 2 :(得分:0)
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>
答案 3 :(得分:0)
我为格式化剃刀文档做了扩展。
安装:强>
1)在扩展中搜索“razor-formatter”
2)按CTRL + P然后输入以下命令并按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美化器。如果有人为此工作并使其完美,我将很高兴。
答案 4 :(得分:-2)
对于所有对Visual Studio抱怨的人来说,我认为它非常令人印象深刻,它允许您在不知道您正在使用哪种语言的情况下在HTML和C#之间切换。
在更实际的说明中,我认为我的建议是结合上面显示的许多内容。具体而言......
考虑到这两个,我发现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贡献者。