2012-05-29 82 views
1

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

+0

也许该属性没有被使用? – Oded

回答

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似乎也没有提供任何有用的检查。