ASP.NET MVC主页变量范围

Jim*_*mbo 5 asp.net asp.net-mvc scope master-pages site.master

我不明白.Master页面中变量的范围 - 任何人都可以提供帮助吗?

在下面的示例中,settings在实例化后的任一用法中都看不到:

<%@ 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>

...
Run Code Online (Sandbox Code Playgroud)

在下面的示例中settings只能在FIRST用法中看到,但不能在第二个用法中看到:

<%@ 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>

...
Run Code Online (Sandbox Code Playgroud)

小智 0

根据我的说法,无论您在母版页中使用什么变量,都可以访问其 XAML 文件和 cs 文件。

您可以在其内容页面中访问它,如下所示:

String variable=((MasterPageName).this.Master).variable;
Run Code Online (Sandbox Code Playgroud)