我試圖讓我的母版頁與我的內容頁面一起工作,允許內容頁面訪問母版頁控件。我得到的錯誤:ASP.net c#Masterpage問題
Parser Error Message: The 'mastertype' directive must have exactly one attribute: TypeName or VirtualPath
這是上線:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="viewProduct.aspx.cs" Inherits="AlphaPackSite.viewProduct"
MasterPageFile="MasterPages/Main.master"
title="Hi there!"
%>
<%@ MasterType TypeName="Main" VirtualPath="MasterPages/Main.master" %>
我的母版頁:
namespace AlphaPackSite
{
public partial class Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
我有點困惑與命名空間和這樣做可能有讓他們錯了,但現在我相信所有頁面都在相同的名稱空間中。
更新
當我把它轉化爲:
<%@ MasterType VirtualPath="MasterPages/Main.master" %>
我不斷收到錯誤:
Compiler Error Message: CS0030: Cannot convert type 'AlphaPackSite.Main' to 'ASP.masterpages_main_master'
Source Error:
Line 147: public new ASP.masterpages_main_master Master {
Line 148: get {
Line 149: return ((ASP.masterpages_main_master)(base.Master));
Line 150: }
Line 151: }
的'更新'標題下。這個答案是錯誤的。如果沒有MasterPageFile屬性,則不能使用MasterType指令,這會導致錯誤。 MasterType指令只允許您定義所使用的主控的類型,否則將始終默認爲System.Web.UI.MasterPage,並且您無權訪問繼承的類成員和方法,而無需每次調用都進行類型轉換。請參閱http://stackoverflow.com/questions/8946742/why-we-use-master-type – needfulthing 2017-04-03 12:37:13