Hier gehen Sie:
How to: Reference ASP.NET Master Page Content
Aus dem Artikel, es sieht aus wie
If Master.SQLerror = Nothing Then
InternalSQLErrLabel.Text = ("No Errors Reported")
End If
sollte für Sie arbeiten.
Stellen Sie sicher, dass Sie die MasterType-Direktive wie beschrieben hinzufügen oder dass ein Typkonvertierungsfehler auftritt. (Oder Sie könnten eine Variable Ihres Masterseitentyps anstelle von Master verwenden, wie daRoBBie in seiner Antwort vorschlägt.)
Ich habe eine Testwebsite erstellt, nur um dies zu testen, und es funktioniert. Hier ist die vollständige Quelle der Website:
Site1.Master:
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site1.master.vb" Inherits="WebApplication1.Site1" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
This is the Master Page content.
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Site1.Master.vb:
Public Partial Class Site1
Inherits System.Web.UI.MasterPage
Private _SQLerror As String
Public Property SQLerror() As String
Get
Return _SQLerror
End Get
Set(ByVal value As String)
_SQLerror = String.Empty
End Set
End Property
End Class
WebForm1.aspx:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master"
CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %>
<%@ MasterType VirtualPath="~/Site1.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
This is the Content Page content.
<asp:Label ID="InternalSQLErrLabel" runat="server" Text="Label"></asp:Label>
</asp:Content>
WebForm1.aspx.vb:
Public Partial Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Master.SQLerror = Nothing Then
InternalSQLErrLabel.Text = ("No Errors Reported")
End If
End Sub
End Class
Das war, was ich versuchte, bevor ich meine Frage stellte, aber ohne Glück! ... Ich bekomme; SQLError ist kein Mitglied von system.web.ui.masterpage. – Phil
Haben Sie die MasterType-Anweisung hinzugefügt? Es sieht so aus, als ob das dein Problem sein könnte. Die Master-Eigenschaft ist nicht stark typisiert, also vom Typ System.Web.UI.MasterPage, der Ihre Eigenschaft nicht besitzt. –
Ich habe <% @ MasterType VirtualPath = "~/mein.master" "%> und in @page MasterPageFile =" ~/mein.master " – Phil