0

每隔一段时间,当我编辑 aspx 或 ascx 页面时,Visual Studio 会开始告诉我文件的第一行有错误。例如,现在,它Argument missing在第 1 行上说。该行只是您的典型标题,没有明显的问题(在我看来),当错误开始出现时,我什至没有更改该行。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyControl.ascx.cs"
Inherits="MyNamespace.MyControl" Debug="true" %>

与大多数编译错误不同,构建仍然成功。(至少这次是这样。)

值得注意的是,此文件或其 as[p|c]x.cs 不会引发其他错误或警告

有时,为了摆脱它,我不得不撤消我的更改,直到它消失,然后小心地重做我想要的。这一次,我抓住稻草,清理并重建了解决方案。当我输入这个时,错误消失了,在重建完成后的某个时间。

我怀疑在我修改标记中的数据绑定时经常会发生这种情况。有时,如果我在结束斜杠之前缺少标签内的空格,它似乎会出现,如下所示:

[...] Text='<%# Eval("Field") %>'/>

相对:

[...] Text='<%# Eval("Field") %>' />

...但在这种情况下,这似乎不是问题。

在编码 PHP 和 Perl 时,有时解释器会在引用文件的最后一行时抛出错误。随着时间的推移,我学会了在上面的某个地方寻找不平衡的括号和其他分隔符。ASP.NET 中的这个问题感觉很相似,但很奇怪,因为它是第一行,而不仅仅是上面的问题,向下层叠到底部。还是只是 Visual Studio 暂时感到困惑?任何专业人士都可以阐明这个问题,以及为什么会发生这种情况吗?我想有一些逻辑(而不是我自己建立的迷信)下次它抬起丑陋的头时抛出这个。

4

2 回答 2

1

这是我发现的 - 当我收到此错误时,通常在 aspx 页面中有一个代码,其中一个函数调用实际上缺少参数 - 就像这个

<asp:DropDownList DataValueField="Value" DataTextField="Text" 
runat="server" Width="90%" ID="Duration" 
DataSource='<%# Utils.GetDropDownList(, ) %>' />

请注意,调用中缺少参数Utils.GetDropDownList(, )

所以错误信息没有正确指向 aspx 页面中的行,但实际上代码存在问题。希望这可以节省一些时间。

于 2012-11-01T16:25:25.783 回答
0

现在又观察了几次,似乎在按顺序重建解决方案时会发生这种情况。大多数时候我倾向于使用 Build,因为它可以方便地映射到 F6。(我目前不知道 Rebuild 的内置映射。)当事情发生奇怪的错误时,请记住使用 Rebuild。

于 2010-02-23T22:05:53.830 回答