使用错误的属性进行编译

时间:2012-05-29 09:03:03

标签: asp.net

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

1 个答案:

答案 0 :(得分:2)

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

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

将上述内容放在aspx上,您在编译时也不会抱怨,甚至在运行时也不会抱怨 - 您只会得到

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

发送到浏览器。但是,做

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

并且在运行时,您将收到解析器错误,因为ASP.NET会尝试将ohdear转换为高度值。

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