【发布时间】:2013-12-25 04:21:46
【问题描述】:
在我的网站中,我有(为了示例)3 个 div。 布局始终保持不变,但每个 div 的内容每次都来自不同的文件。
如下图所示:(每个小方块都是不同的文件)
所以,在我的第一个 div 中,可能有以下三个文件之一:red.html、yellow.html 和 green.html。
对其余的 div 依此类推。
如何创建此布局,而不必为所有可能的组合复制整个代码?
尝试失败: 我尝试使用母版页,但在母版页中,某些内容始终保持静态。 在我的示例中,页面上的所有内容都会发生变化,与其他 div 无关。
我怎样才能创建一个我可以说的布局:
for div1 use yellow.html
for div2 use orange.html
and for div 3 use grey.html
如果我无法完全解释自己,请发表评论,我会编辑帖子。
我在这里真的很挣扎:\
谢谢大家!
编辑:
我将添加使用母版页的示例代码来说明我的问题
这是我的母版页。它有 2 个 div。一个向左浮动,一个向右浮动。
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="width:50%;float:left;">
<asp:ContentPlaceHolder id="CPHL" runat="server">
</asp:ContentPlaceHolder>
</div>
<div style="width:50%;float:right;">
<asp:ContentPlaceHolder id="CPHR" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
这是左侧的网络表单:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<asp:Content ID="Content2" ContentPlaceHolderID="CPHL" Runat="Server">
This is the left side
</asp:Content>
如果我右侧有一个网络表单:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="_Default2" %>
<asp:Content ID="Content2" ContentPlaceHolderID="CPHR" Runat="Server">
This is the Right side
</asp:Content>
如果我打开第一个文件,我只会看到左侧,如果我打开第二个文件,我只会看到右侧。
显然,这不是要走的路。
我可以改为创建一个自动显示左侧的嵌套母版页,然后让第二个文件(显示右侧)使用母版页显示两侧,但是我将无法更改左侧无需创建新的母版页。
我正在寻找的解决方案是这样的:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="width:50%;float:left;">
<asp:ContentPlaceHolder id="CPHL" runat="server">
here I decide which file I want to include
</asp:ContentPlaceHolder>
</div>
<div style="width:50%;float:right;">
<asp:ContentPlaceHolder id="CPHR" runat="server">
here I decide which file I want to include
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
所以这是一种自上而下而不是自下而上的策略。
所以我可以在主文件中说: 左侧包括 anyfile_no312.html
并在右侧包含 anyfile_no_839.html
我将能够独立更改单独 div 的内容。
在经典的 asp 中,我可以有这样的文件:
<div id="container">
<!--#include file="header.asp"-->
<div id="main">
<!--#include file="Story.asp"-->
<div id="sidebar">
<!--#include file="quicklinks.asp"-->
<!--#include file="Menu2.asp"-->
</div>
</div>
<div id="footer">
<!--#include file="footer.asp"-->
</div>
在这种情况下,我可以专门为某个页面添加更多菜单,或者从某个页面中删除页脚等等。它让我可以轻松地编辑页面内容,而无需创造大量可能性。
如何将这个经典的 asp 示例翻译成 asp.net 工作代码?
【问题讨论】:
标签: asp.net webforms master-pages