现在的位置: 首页 > 综合 > 正文

VS 如何自动生成 aspx.designer.cs文件内容(解决”The base class includes the field ””错误)

2013年09月17日 ⁄ 综合 ⁄ 共 2954字 ⁄ 字号 评论关闭

转自: http://support.microsoft.com/kb/941824

SYMPTOMS

Consider the following scenario: You create a Microsoft ASP.NET 2.0 Web applicat...

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).

CAUSE

In the .NET Framework 3.5, the following HTML tags no longer map to the HtmlGene...

In the .NET Framework 3.5, the following HTML tags no longer map to the HtmlGenericControl class:

  • tbody
  • thead
  • tfoot

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.

RESOLUTION

To resolve this problem, update the Web page so that the HTML tags map to the ne...

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:

  1. 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.

  2. Locate the entries for the tbody, thead, and tfoot tags.
  3. Change the entries to map these tags to the new classes. For example, make the following changes.

    Old entry

    protected global::System.Web.UI.HtmlControls.HtmlGenericControl tbodyname;

    New entry

    protected global::System.Web.UI.HtmlControls.HtmlTableBodySection tbodyname;

  4. Save the PageName.aspx.designer.cs file.

Automatic method


To automatically resolve this problem by using the Visual Studio 2005 designer, follow these steps:

  1. 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.

  2. In the Source window, locate the <table> and </table> tags, and then select all entries in the range that includes these tags.
  3. On the Edit menu, click Cut. This operation removes the corresponding entries from the PageName.aspx.designer.cs file.
  4. Keep the cursor in the same location.
  5. On the Edit menu, click Paste. This operation adds the entries that inherit the new classes back to the PageName.aspx.designer.cs file.
  6. Save the PageName.aspx file.

抱歉!评论已关闭.