在Visual Studio 2010中,在“工具”下 - >选项 - >文字编辑器 - > HTML - >格式化 - >标记特定选项,有用于配置编辑器如何自动格式化不同HTML和ASP.NET标记的选项。这包括如果它应该自动在标记之前和之后添加换行符等等。
是否可以为< %%>配置格式规则? <%=%>和<%:%>以类似的方式阻止?
特别是,我不想在<%=和<%:blocks之前强制换行。
例如,我已经将h1标记的选项配置为不在其内容周围添加换行符,并且对静态内容有效,但是当有<%:或<%=时它不起作用在h1标签中阻止。我目前得到这个:
<h1>
<%: Model.Name %></h1>
但我想这样:
<h1><%: Model.Name %></h1>
在完美的世界中,我还想自动格式化&lt; %%&gt;的内容。块以确保&lt;%及其内容之间始终存在空格。
例如,好:
<% if (something) { %>
坏:
<%if (something) {%>
那么,是否有任何设置埋藏在某处以控制这些格式化行为?
答案 0 :(得分:8)
感谢@schellack让我朝着正确的方向努力。以下是获取我想要的行为所需的设置(所有这些都在标签特定选项对话框中):
诀窍是编辑器似乎认识到&lt; %%&gt;块作为名为'%'且没有结束标记的客户端标记。 &lt;%:%&gt;的相同交易和&lt;%=%&gt;。
使用这些设置(与Visual Studio中的其余默认设置相结合),我得到了如下所示的格式化标记(这是我正在寻找的紧凑形式):
<h1><%: Model.Name %></h1>
<ul>
<% foreach (var item in Model.Items) { %>
<li><%: item %></li>
<% } %>
</ul>
到目前为止,我的问题的第二部分似乎不可能。
答案 1 :(得分:2)
您正在寻找合适的区域:
工具 - &gt;选项 - &gt;文字编辑器 - &gt; HTML - &gt;格式化 - &gt;标签特定 选项。
但是,您需要在“默认设置”下的“客户端代码支持内容”中将“换行符”设置为“无”。 Visual Studio正在查看此设置,而不是<h1 />
标记的设置。
我不相信这会给你所需的<% %>
标签内的空格,但它会修复那些有害的额外换行符。
[编辑] 我最初说过设置“服务器标签支持内容”的选项,但我认为它实际上是“客户端标签支持内容”(我在上面进行了更改)。您还可以将“换行符”设置设置为“之前和之后”而不是“无”,如果这样可以更好地为您提供所需内容。您可能还需要将“客户端标记不支持内容”的换行符设置为“无”。
答案 2 :(得分:1)
从VS的角度来看,两个文件夹(Client和ASP.NET)之间没有任何显着差异。它们的存在只是为了方便。事实是标签只能通过其名称识别,并且(幸运的是)VS忽略它不是真实标签。因此,您可以将主题设置放在任一文件夹中。甚至更多的人可以创建(我个人做的)另一个文件夹(例如,称为表达式)并在那里存储设置。
关于更改“默认设置”。如果只想为几个标签更改设置,那么恕我直言最好创建/更改这些标签本身的规则而不是更改默认值(似乎缺少 h1-h6 规则默认的规则集。)
答案 3 :(得分:0)
嗯,有编辑 - &gt;高级 - &gt;格式文档,我想这也会混淆你的代码。我搜索了大量的文档试图找到更多的东西,但据我所知,没有任何东西。
修改强>
问题不在HTML格式选项中,而是与&lt; %%&gt; “标签”。例如:<h2><span></span></h2>
效果很好。正如我所说,我不认为这可以做到。
目前我建议使用:
<h2>
<%="Hello World" %>
</h2>
或
<h2>
<%
if(true)
Response.Write("Hello World");
%>
</h2>