我可以使用在母版页上导入的命名空间吗?
我可以在这样的母版页上导入和使用命名空间..
<%@ 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>
你有什么建议吗?
提前致谢
答案 0 :(得分:1)
您认为首先读取母版页,但在页面生命周期中,在页面请求之后读取母版页,因此您必须在每个页面中包含名称空间。它首先查看当前页面,如果在编译时没有找到它,则会出错。
获取页面时,将读取@ Page指令。如果指令引用母版页,则也会读取母版页。如果这是第一次请求页面,则会编译这两个页面。
从页面末尾阅读Run-time Behavior of Master Pages
请注意,母版页将成为内容页面的一部分。实际上,母版页的行为与用户控件的行为方式大致相同 - 作为内容页面的子项和该页面中的容器。