J'essaie de faire fonctionner ma page de maquette avec ma page de contenu, permettant à la page de contenu d'accéder aux commandes de la page maître. Je reçois l'erreur:ASP.net C# Masterpage problème
Parser Error Message: The 'mastertype' directive must have exactly one attribute: TypeName or VirtualPath
Ceci est sur les lignes:
<%@ 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" %>
Ma page principale est:
namespace AlphaPackSite
{
public partial class Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Je suis un peu confus avec namespaces et ce peut ainsi avoir se sont trompés, mais toutes les pages sont dans le même espace de noms maintenant je crois.
Mise à jour
Quand je retourne à:
<%@ MasterType VirtualPath="MasterPages/Main.master" %>
Je continue à obtenir l'erreur:
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: }
Cette réponse est fausse. Vous ne pouvez pas utiliser la directive MasterType sans l'attribut MasterPageFile, cela entraînera une erreur. La directive MasterType vous permet simplement de définir le type du maître utilisé, sinon il sera toujours par défaut à System.Web.UI.MasterPage et vous n'avez pas accès à vos membres et méthodes de classe héritées sans avoir lancé tous les appels. Voir http://stackoverflow.com/questions/8946742/why-we-use-master-type – needfulthing