ASP.NET、VS2008 中的“无法重新格式化文档”

Posted

技术标签:

【中文标题】ASP.NET、VS2008 中的“无法重新格式化文档”【英文标题】:"Could not reformat the document" in ASP.NET, VS2008 【发布时间】:2010-09-09 16:05:00 【问题描述】:

我在 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 行导致了问题。但是,如果我删除任何单个属性,格式就会起作用。或者,如果我添加一个新属性,格式就有效。或者,如果我将标签更改为非自动关闭,它会起作用。但如果我撤消并保持原样,它就不起作用了。

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

【问题讨论】:

删除一个属性然后重新键入它而不是使用撤消呢?也许有一个奇怪的无效字符看不到。 即使我没有删除任何内容,而是添加了一个新属性(例如,BackColor="Green"),它也可以让我再次格式化。我对此没有合乎逻辑的解释。 多么奇怪。我想我唯一想知道的另一件事是将足够的代码处理到一个新页面中(只是 html、BODY 表行和一个带有按钮的单元格)看看它是否仍然以这种方式运行......或者只是把它归结为它似乎是一个奇怪的错误。 【参考方案1】:

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

【讨论】:

我的标记没有错误(据我所知),但这让我走上了解决问题的正确轨道。 在 来修复它 【参考方案2】:

今天确实遇到了问题。

我的解决方案:重启 Visual Studio

【讨论】:

我成功关闭了有问题的文件并重新打开。 关闭并重新打开文件是我的解决方法。 它的原因是括号、引号、奇怪字符等混淆。但我的经验是重新启动VS是解决问题的最快方法。【参考方案3】:

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

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

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

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

【讨论】:

【参考方案4】:

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

上述步骤会将所有空格(包括换行符)替换为一个空格,并且下次格式化文档时,您应该不会出现任何错误。这是假设您没有格式错误的 HTML。

【讨论】:

除非你有带有 cmets 的 javascript 你会丢失你的页面。小心这个..【参考方案5】:

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

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

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

几周前我第一次遇到这种情况。我发现它归结为无效的 HTML。为了找出问题所在,我不得不剪下部分内容并将其粘贴回去。

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

我有一个不需要的分号。但您可能有引号 (')、双引号 (")、分号 (;) 或任何特殊字符。

所以,用更多细节和屏幕截图编辑我的答案,因为它仍然非常活跃。

双击错误转到该行并搜索多余的(不需要的)引号 (')、双引号 (")、分号 (;) 或任何特殊字符。删除它,因为它会导致错误.

【讨论】:

【参考方案10】:

只是为了添加更多信息。此问题是由于html 中的一些无效标记引起的。 运行应用程序时不会导致任何阻塞。

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

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

【讨论】:

【参考方案11】:

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

【讨论】:

以上是关于ASP.NET、VS2008 中的“无法重新格式化文档”的主要内容,如果未能解决你的问题,请参考以下文章

使用VS 2008建立启用了ASP.NET AJAX 1.0的新ASP.NET 2.0项目

在asp.net 中如何动态的创建表格?就是vs2008工具箱中的html table控件

.NET 3.5/VS 2008 上 ASP.NET Web 服务的自定义 HTTP 基本身份验证

asp.net VS2008 GridView 里面怎么排序

我把asp.net源码下载到电脑以后,用vs2008打开,全是错误,显示创建控件时出错。

asp.net(vs2008 c# 中) 如何在跳转的页面传递参数?