或者,我是否应该问,VS代码格式何时适用于Razor标记?格式化适用于大多数结构,但它似乎阻塞'if'块.下面的代码是由VS格式化的.修复这种情况非常容易,还有一个缩进,但我很好地接受了日常使用中的格式,并且喜欢经常使用它来代替我的大部分代码,所以我宁愿避免手动格式化.现在我只是把它作为VS格式化它.
@{
if (User.Identity.IsAuthenticated)
{
<text>Hello </text>
@Html.Display("@ViewBag.UserName") <text> - </text>
@Html.ActionLink("Sign Out", "LogOff", "Account", null, new { style = "font-weight: bold;" })
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这对于可读性很重要,例如在上面,if块的主体是缩进的,除了看起来更好.
asp.net-mvc visual-studio-2010 visual-studio razor asp.net-mvc-3
我注意到Razor <text>
标签拒绝遵循任何格式约定.例如,在格式化cshtml
文档时,我最终得到如下代码:
@MyHelper.MyMethod(@<div>
<p>Hello world</p>
</div>)
@MyHelper.MyMethod(@<text>
<p>Hello world</p>
</text>)
Run Code Online (Sandbox Code Playgroud)
请注意,这不是特定于Razor模板函数,<text>
任何地方的块都会做同样的事情.
客户端HTML标记(及其内容),例如<div>
遵循我指定的格式样式,但无论我在哪里添加(或删除)<text>
元素Tag Specific Options...,都没有效果.在前面的例子中,期望的结果是<text>
元素内容被格式化为<div>
元素内容.
是否有任何技巧,或变通执行,以在相同的格式风格<text>
元素,其他块级客户端HTML元素(<div>
,<section>
等)
我已经看到Razor语言的其他类似格式问题,例如这里和这里,所以这不是没有先例,似乎可能没有解决方案.无论哪种方式,也许有人遇到过修复.
这是一个Razor 2.X网站,建于VS 2010
附录
(我对此感到厌倦.)
也许这个问题在2012年已经解决了; 不知道,还没有更新.但是,<text>
块,@
前缀块等不能很好地格式化.
另一个例子,这次是@
-prefixed块(构造等)
@foreach (var foo in bar) {
<div>@(foo.A)</div>
<div>@(foo.B)</div>
@foreach (var qux in foo.C) {
<div>@(qux.D)</div>
<div>@(qux.E)</div> …
Run Code Online (Sandbox Code Playgroud)