在.aspx母版页中包含内容

时间:2010-02-09 15:07:56

标签: asp.net

在我目前的项目中,我们有5个不同的主页,每个都有一些共同的元素,它们真的很烦人,所有5个都有变化,它有点击败了主页。

我尝试过使用父母和子母版主页,但这会在不同的日子引起其他问题。

有没有办法在母版页中添加动态内容?

我正在寻找类似于php和coldfusion include()的东西。

5 个答案:

答案 0 :(得分:4)

您可以将用户控件(.ASCX)放在母版页中。这是你想要完成的吗?

像这样...

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="WebForms.master.cs"
    Inherits="Tunafish.Web.Views.Shared.WebForms" %>

<%@ Register Src="~/Content/Controls/SiteNavigation.ascx" TagName="Nav" 
    TagPrefix="sc" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
<body>
        <sc:Nav runat="server" />

答案 1 :(得分:1)

您是否研究过用户控件? .ascx

答案 2 :(得分:1)

答案 3 :(得分:1)

正如mxmissile和JMP建议的那样,用户控件是可行的方法,但您可能希望彻底使用它们。当您包含母版页时,请确保添加以下标记以及页面声明:

<%@ MasterType 
    virtualpath="~/myMasterPages/Master.master" 
%>

这将允许您调用母版页中的函数/对象,以便您可以更改控件或从页面本身访问各种其他对象。我在我的基本usercontrol类中有一个名为“ParentForm”的属性,它是对它所在页面的引用。对于母版页中的用户控件,我最终拥有相同的属性,并且在该属性的setter中我将其翻译下来到用户控件。

答案 4 :(得分:0)

您可以将主页设置为从代码中动态插入内容或脚本的类继承到页面OnPreRender。它似乎在那里,但我不得不使用这种方法。