2014-04-25 18 views
5

Ich verstehe nicht den Umfang der Variablen in meinen .Master-Seiten - kann jemand helfen?ASP.NET MVC Masterseite Variablenbereich

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<% var settings = new SettingRepository(); %> 

<!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"> 

    <meta name="description" content="<%: settings.metaDescription %>"/> 

    <title> 
     <asp:ContentPlaceHolder ID="TitleContent" runat="server" /> - <%: settings.pageTitle %> 
    </title> 

... 

nur in der ersten Verwendung unter settings kann die zweite, aber nicht zu sehen Im Beispiel:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<!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"> 

    <% var settings = new SettingRepository(); %> 
    <meta name="description" content="<%: settings.metaDescription %>"/> 

    <title> 
     <asp:ContentPlaceHolder ID="TitleContent" runat="server" /> - <%: settings.pageTitle %> 
    </title> 

... 

Im Beispiel unten settings kann nicht in jeder Nutzung nach ihrer Instanziierung zu sehen

+3

Würde der downvoter erklären Geist, warum er so kann ich Downvoted mein Fehlverhalten beheben? :) – Jimbo

Antwort

0

Laut mir was immer Sie in der Master-Seite verwenden, ist es zugänglich für seine XAML-Datei und CS-Datei.

Sie können es in ihren Content-Seiten zugreifen wie folgt aus:

String variable=((MasterPageName).this.Master).variable; 
+0

Ich glaube nicht, dass dies die Frage beantwortet. Dies erfordert, dass eine Eigenschaft in der Code-Behind definiert ist, aber das Beispiel verwendet es nie (und sollte nicht) –

Verwandte Themen