母版页HTML:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
母版页CS文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
public delegate void ButtonHandle(object sender, EventArgs e);
public event ButtonHandle Button_Click;
protected void Button1_Click(object sender, EventArgs e)
{
if (Button_Click != null)
{
Button_Click(sender, e);
}
}
}
内容页HTML:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
内容页CS:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_LoadComplete(object sender, EventArgs e)
{
Master.Button_Click+=
}
}
报错:错误 1 “ASP.masterpage_master”不包含“Button_Click”的定义,并且找不到可接受类型为“ASP.masterpage_master”的第一个参数的扩展方法“Button_Click”(是否缺少 using 指令或程序集引用?) d:\我的文档\Visual Studio 2010\WebSites\WebSite6\Default.aspx.cs 12 16 d:\...\WebSite6\
注意:当我新建的是网站时会报错,但是,我新建的是ASP WEB应用程序时,这个做法就不会报错!
而且在内容页的CS文件中 竟然不认识,母版页定义的类名,比如我把母版页改成DDD.MASTER
在内容页中,打DDD,都不行,不认识这个类!
你的模板是吧“网站”,这个模板中如果你用VirtualPath来指定的话,会有这个问题,好像它会动态生成一个类型。
你可以指定TypeName,我测试过是可以的
<%@ MasterType TypeName="MasterPage" %>
不行的!晕,要申请博客才能开通上传图片!
楼主,我试验了2种都可以,请确认你的website 内容页是不是加了
<%@ MasterType VirtualPath="~/MasterPage.master" %>
建议你重点研究下<%@ MasterType,跟这个有很大的关系
FINDCONTROLS,和这个我全试过了,我现在严重怀疑我的编译器VS2010 是不是坏了,经常性,我不保存,直接关电脑!
结束吧!搞不清楚原因!
知道原因了,我定义的母版页类无法加载
如:
Public class DDD : MasterPage
{
protected ContentPlaceHolder ContentPlaceHolder1;
protected HtmlForm form1;
protected ContentPlaceHolder head;
public DDD();
protected HttpApplication ApplicationInstance { get; }
protected DefaultProfile Profile { get; }
protected void Page_Load(object sender, EventArgs e);
我定义的母版页无法体现出我放进去的控件和事件,这是为什么么,我的编译器还真是坏了,我日呀!
母版页类无法加载