&引用;无法重新格式化该文档";在ASP.NET中,VS2008

&引用;无法重新格式化该文档";在ASP.NET中,VS2008,asp.net,visual-studio,visual-studio-2008,user-controls,Asp.net,Visual Studio,Visual Studio 2008,User Controls,我在ASP.NET用户控件中。当我键入Control-K、Control-D以重新格式化所有标记时,我从VS 2008中得到一系列消息: “无法重新格式化文档。已还原原始格式。” “无法完成操作。” “操作无法完成。参数不正确。” 有人知道这是什么原因吗 编辑:好吧,那只是……奇怪 问题在于: <asp:TableCell> <asp:Button Text="Cancel" runat="server" ID="lnkCancel" CssClass="CellSingl

我在ASP.NET用户控件中。当我键入Control-K、Control-D以重新格式化所有标记时,我从VS 2008中得到一系列消息:

“无法重新格式化文档。已还原原始格式。”

“无法完成操作。”

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

有人知道这是什么原因吗

编辑:好吧,那只是……奇怪

问题在于:

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

不知何故,asp:按钮行导致了问题。但是,如果我删除任何单个属性,格式设置就会起作用。或者,如果我添加了一个新属性,则格式设置会起作用。或者,如果我将标记更改为非自动关闭,它将工作。但如果我撤销并保持原样,它就不起作用了


我所能想到的是,这是一种非常模糊、奇怪的bug。

您的文档中可能有一些格式错误的标记。您在新文档上试用过吗?

几周前我第一次遇到这种情况。我发现这是由于无效的HTML。我不得不剪掉部分内容,然后一次粘贴一点,以找出问题所在。

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

例如,如果标签像这样不匹配,IDE就不能重新格式化它

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

我的标题对我来说,我的标记代码中有一些伪造字符。我只是通过把我所有的文字复制粘贴到记事本上才发现这一点。在那之后,我看到了伪字符(显示为小正方形)。我刚刚删除了这些行并重新键入,现在一切正常。

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

通过这种方式,您可以找到问题的确切位置,特别是未关闭或不适当的关闭标记,并修复它们


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

对于我来说,这通常与空白有关。要修复它,我打开Find and Replace(CTRL+H),将Look in设置为“当前文档”,选中Use并选择“正则表达式”。对于查找我输入的内容“:b |\n”(减引号),对于替换为我输入一个空格。然后单击“全部替换”


上述步骤将用一个空格替换包括换行符在内的所有空白,下次格式化文档时,不应出现任何错误。这是假设您没有格式错误的HTML。

今天确实遇到了问题


我的解决方案是:重新启动Visual Studio以添加更多信息。此问题是由
html
中的一些无效标记引起的。 它不会在运行应用程序时造成任何阻塞

不幸的是,这里提到的解决方案对我不起作用。 1.重新启动visual studio 2.使用正则表达式等替换空格


解决此问题的最佳解决方案是转到导致此问题的特定行,并检查该行是否存在任何无效符号,如
。只需将其删除即可正常工作。

我的问题是额外的
。仔细查看html。

我的问题是额外的”在html属性的值中,删除此属性后,它对我来说工作正常。

因此我有一个不需要的分号


在我的img标签中。删除后,它工作正常。

我的标记没有格式错误(据我所知),但这使我走上了解决问题的正确道路。额外的“删除属性后再重新键入它而不是使用“撤消”怎么样?可能有一个奇怪的无效字符无法看到。即使我没有删除任何内容,而是添加了一个新属性(比如BackColor=“Green”),它也可以让我重新格式化。我对此没有合乎逻辑的解释。真奇怪。我想我唯一想知道的是将足够多的代码处理到一个新页面(只有HTML、BODY表行和一个带按钮的单元格)中,看看它是否仍然以这种方式运行。。。或者把它归结为一个奇怪的bug,除非你有带注释的javascript,否则你的页面就会丢失。注意这一点。我成功地关闭了有问题的文件并重新打开。关闭并重新打开文件对我来说是一个解决办法。原因是括号、引号、奇怪字符等方面的混淆。但我的经验是,重新启动VS是解决问题的最快方法。