Consider the following scenario:
- You create a Microsoft ASP.NET 2.0 Web application.
- You add markup that resembles the following to the Web page.
<body>
<form id="form1" runat='server">
<Table ID="Tablename" runat="server" Height="224px" Width="399px">
<tbody ID="tbodyname" runat="server"></tbody>
</Table>
</form>
</body>
- You build the application by using Microsoft Visual Studio 2005.
- You install the Microsoft .NET Framework 3.5.
- You open the project in Visual Studio 2005 and then build the application.
In this scenario, you receive an error message that resembles the following:
ASP.NET runtime error: The base class includes the field ‘tbodyname’, but its type (System.Web.UI.HtmlControls.HtmlGenericControl) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlTableBodySection).
In the .NET Framework 3.5, the following HTML tags no longer map to the
HtmlGenericControl class:
In the .NET Framework 3.5, these tags map to the following classes:
Collapse this tableExpand this table
| Tag | Class |
|---|
| tbody | HtmlTableBodySection |
|
thead | HtmlTableHeaderSection |
| tfoot | HtmlTableFooterSection |
This change enables the layout options of the new
ListView control.
Note When you install the .NET Framework 3.5, the .NET Framework files in the V2.0.50727 folder are updated. Therefore, when you install the .NET Framework 3.5, Visual Studio 2005 is affected.
To resolve this problem, update the Web page so that the HTML tags map to the new classes. You can do this manually. Or, you can use the Visual Studio 2005 designer to do this automatically.
Manual method
To manually resolve this problem, follow these steps:
- In Visual Studio 2005, open the PageName.aspx.designer.cs file.
Note The placeholder PageName represents the name of the Web page on which you encounter the problem. - Locate the entries for the tbody, thead, and tfoot tags.
- Change the entries to map these tags to the new classes. For example,
make the following changes.
Old entryprotected global::System.Web.UI.HtmlControls.HtmlGenericControl tbodyname;
New entryprotected global::System.Web.UI.HtmlControls.HtmlTableBodySection tbodyname;
- Save the PageName.aspx.designer.cs file.
Automatic method
To automatically resolve this problem by using the Visual Studio 2005 designer, follow these steps:
- In Visual Studio 2005, open the PageName.aspx file.
Note The placeholder PageName represents the name of the Web page on which you encounter the problem. - In the Source window, locate the <table> and </table> tags, and then select all entries in the range that includes these tags.
- On the Edit menu, click Cut. This operation removes the corresponding entries from the PageName.aspx.designer.cs file.
- Keep the cursor in the same location.
- On the Edit menu, click Paste. This operation adds the entries that inherit the new classes back to the PageName.aspx.designer.cs file.
- Save the PageName.aspx file.
This behavior is by design.