1

我们有一个 asp.net 自定义控件,用于我们的 webforms asp.net 项目。我重命名了控件的属性,并希望在该属性用作属性的地方出现编译时错误,但它没有发生。为什么会这样?

4

1 回答 1

2

ASP.NET 标记实际上并没有在编译时甚至在运行时进行架构检查。您完全有权编写您喜欢的任何旧标签汤 - 除非您明确地做一些没有意义的事情,否则 ASP.NET 不会抱怨。

 <asp:Label runat="server" fjsdkfj="sdjkfldskfls">Hello</asp:Label>

将上述内容放在 an 上aspx,您将不会在编译时收到任何投诉,甚至在运行时也不会收到任何投诉 - 您只会得到

<span fjsdkfj="sdjkfldskfls">Hello</span>

发送到浏览器。但是,做

<asp:Label runat="server" fjsdkfj="sdjkfldskfls" Height="ohdear">Hello</asp:Label>

运行时你会得到一个解析器错误,因为 ASP.NET 试图转换ohdear成一个高度值。

要更早地找到第二种类型的错误,您可以使用 ASP.NET 预编译。为了找到第一类错误,我知道除了测试之外别无他法——即使 ReSharper 似乎也没有提供任何有用的检查。

于 2012-05-29T09:34:45.193 回答