我有一个使用3个不同布局页面的网站。在每个页面上,顶部都是重复的。也就是说,元标记,css文件引用,一些谷歌分析链接。他们全部复制并粘贴到每个布局页面。
我可以在MVC布局中使用什么概念,允许我在一个页面中包含所有这些内容,然后包含'在所有布局页面上?我本来希望有某种形式的' _global.cshtml'文件,我可以在每个布局页面上包含。可以这样做吗?
答案 0 :(得分:1)
我认为在每个布局页面中,您可以声明一个新布局,并将每个布局指向一个全局布局。
所以在每个布局中你都要编写
@{
Layout = "path/to/global/layout"
}
答案 1 :(得分:-2)
您可以在site.master文件中实现此目的。
ex in site.master:
<%@ Master Language="CS" AutoEventWireup="false" CodeFile="Site.Master.cs" Inherits="Site" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
--meta here
--js files here
--css files here
--title
</head>
<body>
--your navigation/header
<form runat="server" method="post">
<asp:ContentPlaceHolder ID="MainContent" runat="server"/> -- this is where the content of every page appended.
</form>
--your footer
</body>
</html>
在您的aspx中,您必须将代码包含在asp:content中,其属性为“contentplaceholder”= site.master文件中您的contenplaceholder的ID
Ex in aspx:
<%@ Page Title="MySite" Language="CS" MasterPageFile="~/Site.Master" AutoEventWireup="false" CodeFile="MyAspx.aspx.cs" Inherits="MyAspx" %>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID = "MainContent">
<div>
<h1>My ASPX CONTENT</h1>
</div>
</asp:Content>