看来,Visual Studio无法根据注册的控件选择正确的名称空间。
我已通过将图表注册移动到列表顶部来解决此问题。这导致设计器文件再次正确生成。 asp:Chart控件的命名空间也是正确的。
所以在web.config我的控制部分已经从这个了:
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
这样:
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
我仍然认为有一个在VS造成这种行为的错误。
你能检查你的web.config吗?这听起来像也许该名称空间正在使用asp前缀 - 如果是这种情况,只需将其更改为diff前缀 – 2010-07-14 06:12:47
是的,制图控件的标记前缀也是'asp'。这应该没问题,VS应该能够选择正确的。 VS 2008没有这个问题。 – nordisk 2010-07-14 22:47:29
我有这个bug多年。以下是Microsoft Connect问题 - 请为此投票:http://connect.microsoft.com/VisualStudio/feedback/details/654640/asp-net-invalid-namespaces-in-designer-files – cbp 2011-11-14 06:42:30