从内容页面使用母版页的命名空间

时间:2011-05-29 07:57:33

标签: asp.net master-pages content-pages

我可以使用在母版页上导入的命名空间吗?

我可以在这样的母版页上导入和使用命名空间..

<%@ Import Namespace="utl=portal.lib.SnkUtilities" %>

和标记;

<a href='<%= "/" + utl.getSomeString() + "/cart.aspx" %>'>

但是如果想在内容页面上使用相同的命名空间,我必须第二次在内容上导入相同的命名空间,如下所示:

    <%@ Page Title="" Language="C#" MasterPageFile="~/Master" AutoEventWireup="true" CodeBehind="Account.aspx.cs" Inherits="portal.secret.Account" %>
    <%@ Import Namespace="utl=portal.lib.SnkUtilities" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<%= utl.getAnotherString() %>
    </asp:Content>

你有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

您认为首先读取母版页,但在页面生命周期中,在页面请求之后读取母版页,因此您必须在每个页面中包含名称空间。它首先查看当前页面,如果在编译时没有找到它,则会出错。

  

获取页面时,将读取@ Page指令。如果指令引用母版页,则也会读取母版页。如果这是第一次请求页面,则会编译这两个页面。

从页面末尾阅读Run-time Behavior of Master Pages

  

请注意,母版页将成为内容页面的一部分。实际上,母版页的行为与用户控件的行为方式大致相同 - 作为内容页面的子项和该页面中的容器。