《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”

时间:2021-11-27 07:41:28

VS2005下,添加了母版页这个控件,我们可以讲N个页面*同的部分放在母版页来实现,并让WEB窗体集成自我们的母版页,就可以让我们的站点具有统一的风格了.
在VS2005SP1之前的版本中,我们只能创建Web网站(而不是项目),而这种方式似乎不太方便,至少在SP1出现之后有了更多的选择,新建一个WebApplication项目文件.
1.在Web网站下引用母版页
a.新建网站
b.新建母版页并添加内容;
c.新建Web窗体,选中“选择母版页”复选框,然后单击“添加”。出现“选择母版页”对话框。
d.一切很坦然地就继续了.

2.在WebApplication项目中引用母版页(SP1中才有的)
假设你按1的方法那么做:
并在3的时候添加Web窗体的话,你将无法引用母版页,也许你决定在<@page 里面添加类似MasterPageFile="~/Themes/Master/Default.Master"的句子来添加母版页,但是最后的结果通常会是:

《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”“/”应用程序中的服务器错误。
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”--------------------------------------------------------------------------------
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”分析器错误 
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”分析器错误信息: 内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”源错误: 
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”行 10:     <form id="form1" runat="server">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”行 11:     <div>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”行 12:     <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”行 13: </asp:Content>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”行 14:     </div>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。” 
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”源文件: /Test/WebForm1.aspx    行: 12 
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”--------------------------------------------------------------------------------
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210 

该如何做呢?
正确且简单的方法是:
在新建页面的时候使用"Web内容表单"而不是"Web窗体"来添加新窗体.让我们看看它们的区别:

  "新建"项目选择框内的提示有所差别 生成的代码有所差别
Web内容表单 基于母版页生成的 Web 应用程序的表单
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<%@ Page Language="C#" MasterPageFile="~/Themes/Master/Default.Master" AutoEventWireup="true" CodeBehind="Masterpage.aspx.cs" Inherits="WebAppBlog.Test.Masterpage" Title="无标题页" %>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”</asp:Content>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
Web窗体 Web 应用程序的窗体
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebAppBlog.Test.WebForm1"  MasterPageFile="~/Themes/Master/Default.Master"%>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<html xmlns="http://www.w3.org/1999/xhtml" >
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<head runat="server">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”    <title>无标题页</title>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”</head>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”<body>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”    <form id="form1" runat="server">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”    <div>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”</asp:Content>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”    </div>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”    </form>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”</body>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”</html>
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”

注:您仍然可以手动去将上面的代码做一次拷贝,不过我想既然有直接可以生成的,也就没有必要再去手动写了.
以下是新建项目的窗口:

《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”
《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的*控件,或是引用母版页的嵌套母版页。”