在项目中使用 MasterPage.master 时 ASP.NET 如何加载页面?

问题描述 投票:0回答:1

Links.aspx 基于 MasterPage.master。

A: MasterPage.master、MasterPage.master.cs、Links.aspx 和 Links.aspx.cs 之间的加载顺序是什么?

B: jquery-3.6.3.min.js、TodoA()、base.js 和 TodoB()之间的加载顺序是什么?

MasterPage.master

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs" Inherits="LinkTabs.MasterPage" %>
<!DOCTYPE html>
<html>
<head runat="server">  
    <script type="text/javascript" src='jquery-3.6.3.min.js'></script>   
   ...
</html>

MasterPage.master.cs

namespace LinkTabs
{
    public partial class MasterPage : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            TodoA()
        }
    }
}

链接.aspx

<%@ Page Title="Open A List Of URLs" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="Links.aspx.cs" Inherits="LinkTabs.Links" %>
<%@ Import Namespace="LinkTabs.App_MyCode.BLL" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">       
    
    <script src='~/Js/base.js'></script>
    ...
</asp:Content>

链接.aspx.cs

namespace LinkTabs
{
    public partial class Links : System.Web.UI.Page
    {       

        protected void Page_Load(object sender, EventArgs e)
        {
              TodoB()
        }

    }
}
asp.net
1个回答
0
投票

当您使用母版页时,当您导航到该页面时,母版页的页面加载事件将被触发。

现在,如果您单击子页面上的按钮,则

子页面加载事件触发。

母版页加载事件触发。

子页面按钮单击事件触发。

因此,请记住,对于子页面上的任何回发、按钮单击等,然后触发子页面加载事件,然后触发母版页,然后触发子按钮单击代码存根。

所以:

 Child page load event->Master Page Load event->child page code stub

作为一般规则,我们通常不太关心上述内容。但是,如果该子页面隐藏/显示菜单项,则如上所示,子页面的代码将在母版页代码运行后运行,因此您通常看不到菜单项(母版页菜单)改变。

因此,上面建议并提示隐藏/显示或控制菜单项的代码应放置在母版页加载事件中......

© www.soinside.com 2019 - 2024. All rights reserved.