在我目前的项目中,我们有5个不同的主页,每个都有一些共同的元素,它们真的很烦人,所有5个都有变化,它有点击败了主页。
我尝试过使用父母和子母版主页,但这会在不同的日子引起其他问题。
有没有办法在母版页中添加动态内容?
我正在寻找类似于php和coldfusion include()的东西。
答案 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)
自定义Web控件是可行的方法:
答案 3 :(得分:1)
正如mxmissile和JMP建议的那样,用户控件是可行的方法,但您可能希望彻底使用它们。当您包含母版页时,请确保添加以下标记以及页面声明:
<%@ MasterType
virtualpath="~/myMasterPages/Master.master"
%>
这将允许您调用母版页中的函数/对象,以便您可以更改控件或从页面本身访问各种其他对象。我在我的基本usercontrol类中有一个名为“ParentForm”的属性,它是对它所在页面的引用。对于母版页中的用户控件,我最终拥有相同的属性,并且在该属性的setter中我将其翻译下来到用户控件。
答案 4 :(得分:0)
您可以将主页设置为从代码中动态插入内容或脚本的类继承到页面OnPreRender。它似乎在那里,但我不得不使用这种方法。