VS2008中的"无法重新格式化文档"

时间:2020-03-05 18:56:44  来源:igfitidea点击:

我在ASP.NET UserControl中。当我键入Control-K,Control-D重新格式化所有标记时,我从VS 2008中收到了一系列消息:

"无法重新格式化文档。恢复了原始格式。"

"无法完成操作。"

"操作无法完成。参数不正确。"

有人知道是什么原因造成的吗?

编辑:确定,那只是...很奇怪。

问题在这里:

<asp:TableCell>
  <asp:Button Text="Cancel" runat="server" ID="lnkCancel" CssClass="CellSingleItem" />
</asp:TableCell>

asp:Button行不知何故导致了问题。但是,如果我删除任何单个属性,则格式有效。或者,如果我添加一个新属性,则格式有效。或者,如果我将标签更改为非自动关闭,则可以使用。但是,如果我撤消并保持原样,则它将不起作用。

我所能想到的是,这是一种非常晦涩,怪异的错误。

解决方案

回答

文档中某处可能存在一些格式错误的标记。我们是否尝试过使用新文档?

回答

几周前我第一次遇到这个问题。我发现这归因于无效的HTML。我不得不切掉部分内容,然后一次粘贴回去,以找出问题所在。

回答

通常,这种行为是由无效代码引起的。它可能只是无效的HTML,导致它仍然允许程序被编译。

例如,如果标签像这样不匹配,IDE将无法重新格式化它。

<div><h1>My Title</div></h1

检查警告,以查看是否有任何条目指向不匹配或者未关闭的标签。

回答

对我来说,我的标记代码中有一些假字符。我只是通过复制并将所有文本粘贴到记事本中才发现的。之后,我看到了假字符(显示为小方块)。我只是删除了这些行,然后重新输入了它们,现在一切正常。

回答

选择整个可疑代码段,然后使用Ctrl + k,Ctrl + F仅格式化选定的段,而不格式化整个文档。

这样,我们可以找到问题的确切位置,特别是未关闭或者不合适的关闭标签并进行修复。

完成所有逐段扫描后,我们可以确定整个文档的格式

回答

对我来说,通常是空白问题。要解决此问题,我打开"查找和替换"(CTRL + H),将"查找范围"设置为"当前文档",选中"使用"并选择"正则表达式"。对于查找,我输入":b | \ n"(减引号),对于替换为,我输入一个空格。然后,我单击全部替换。

上面的步骤将用空格替换所有空格,包括换行符,并且下次格式化文档时,应该不会出现任何错误。那是假设我们没有格式错误的HTML。