[英]How to share Master Pages between my projects
我正在開發一個Web項目,我需要共享一個母版頁,這樣當我創建一個新頁面時,它就有了基本的布局。 我想到的是用該母版頁創建一個項目,並在每個Web項目中添加它作為參考。 但問題是我不知道如何在我想要應用MP的.aspx文件中嵌入母版頁,或者它是在項目之間共享母版頁的最佳方式。 我會幫助或評論任何幫助!
在這里,我給你我的代碼(這不起作用):
Index.aspx :
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="" CodeBehind="Index.aspx.cs" Inherits="MiWeb.Index" %>
<HeaderMp:Header ID="ctntHead" ContentPlaceHolderID="head" runat="server">
<title>SITPer</title>
</HeaderMp:Header>
Header.Master :
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Header.Master.cs" Inherits="MasterPages.Header" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script src="js/jquery.min.js"></script>
<script src="js/jquery.dropotron.min.js"></script>
<script src="js/skel.min.js"></script>
<script src="js/skel-layers.min.js"></script>
<script src="js/init.js"></script>
<noscript>
<link rel="stylesheet" href="css/skel.css" />
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="css/style-desktop.css" />
</noscript>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<div>
<!-- Header -->
<div id="header-wrapper" >
<div id="header">
<!-- Logo -->
<div id="logo">
<h1><a href="Index.aspx">SITPer</a></h1>
<p>Prueba</p>
</div>
</div>
</div>
<asp:ContentPlaceHolder ID="body" runat="server">
</asp:ContentPlaceHolder>
</div>
</body>
</html>
謝謝!!
注意:除了此處描述的鏈接文件功能外,Visual Studio 2015+中還有一個新的共享項目功能 ,允許您創建專門用於共享代碼的項目,該代碼將編譯到添加到的項目中。
母版頁只能屬於單個Web項目。 但是,Visual Studio / MSBuild有一個功能,允許您在項目之間共享代碼以有效地獲得所需的結果。 如果你把母版頁文件(所有的人,包括.master
, .master.cs
和.master.designer.cs
)到一個文件夾在同一級別為您的解決方案,你可以使用Visual Studio中的鏈接文件功能添加file作為鏈接文件(未復制到項目文件夾中的文件)。
在Windows資源管理器中,打開包含解決方案( .sln
)文件的目錄。 右鍵單擊空白,然后單擊New -> Folder
。 將文件夾命名為SharedFiles
。 將Header.master
, Header.master.cs
和Header.master.designer.cs
文件復制到該文件夾中。
在Visual Studio中,從所有項目中刪除Header.master
文件。 然后,對於要在其中共享Header.master
頁面的每個項目,請按照以下步驟操作。
Add -> Existing Item
。 SharedFiles
文件夾。 Header.master
, Header.master.cs
和Header.master.designer.cs
文件。 Add As Link
項。 如果你做得正確,文件的圖標上會有一個箭頭表示它是一個鏈接文件。 現在,當您對母版頁進行更改時,更改將反映在所有項目中。
您還必須在Index.aspx頁面中修復一個問題。 您必須將母版頁文件設置為文件的虛擬位置。 如果您按照上面的說明操作,路徑將是......
MasterPageFile="~/Header.master"
但請注意,如果將文件(或鏈接文件)放在Web項目的子目錄中,虛擬路徑將會更改。
我認為您沒有在頁面中添加主頁的地址(MasterPageFile =“”)。 你在使用visual studio嗎? 如果你那么你只需要使用ctrl + shift + a並使用母版頁選擇網頁表單。
Master Page:
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site1.master.vb" Inherits="WebApplication2.Site1" %>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
Page.aspx which uses masterpage:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="Registration Form.aspx.vb" Inherits="WebApplication2.Registration_Form" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.