在Visual Studio 2010中,在工具 – >选项 – >文本编辑器 – >
@L_301_0@ – >格式化 – >标签特定选项,可以选择配置编辑器如何自动格式化不同的HTML和ASP.NET标签.这包括如果它应该在标签之前和之后自动放置换行符等.
是否有一个地方可以为<%%>配置格式规则<%=%>和<%:%>以类似的方式阻挡?
特别是,我不想在<%=和<%:blocks之前强制换行. 例如,我已经配置了h1标签的选项,以便在其内容周围不添加换行符,并且对于静态内容来说非常有用,但是当在<%:或<%= block h1标签.我现在得到这个:
<h1> <%: Model.Name %></h1>
但我想这样:
<h1><%: Model.Name %></h1>
在完美的世界中,我也想自动格式化<%%>的内容.块,以确保<%和其内容之间始终有一个空格. 例如,好:
<% if (something) { %>
坏:
<%if (something) {%>
那么,是否有任何设置埋在某个地方来控制这些格式化行为?
解决方法
感谢@schellack为我正确的方向.以下是获取我想要的行为(标签特定选项对话框中的所有内容)所需的设置:
断线:前后
>(这使得h1,p和类似的标签的行为方式与我想要的一样,其他人可能希望无作为选择.
>标签名称:%
>关闭标签:无结束标签
断线:前后
>(这将捕获实际的代码块,并使它们与代码块之前和之后的换行符与HTML标记分开.)
>标签名称:%:
>关闭标签:无结束标签
换行符:无
>(它捕获<%:%>阻止并保持它们与HTML标记内联,而不会有任何换行符.)
>标签名称:%=
>关闭标签:无结束标签
换行符:无
>(与前一个类似),它捕获<%=%>阻止并保持它们与HTML标记一致,而不会有任何换行符.)
诀窍在于编辑器似乎认识到<%%>作为名为“%”的客户端标记没有结束标记.与<%:%>相同的交易和<%=%> ;. 使用这些设置(与Visual Studio中的其余默认设置相结合),我得到如下格式的标记(这是我正在寻找的紧凑形式):
<h1><%: Model.Name %></h1> <ul> <% foreach (var item in Model.Items) { %> <li><%: item %></li> <% } %> </ul>
至此,我的问题的第二部分似乎并不可能.