如何将其他页面包含到 aspx 文件中

Posted

技术标签:

【中文标题】如何将其他页面包含到 aspx 文件中【英文标题】:How to include other page to aspx file 【发布时间】:2013-02-11 10:44:36 【问题描述】:

我想将其他 aspx 文件包含到 asp.net 中的主 aspx 文件中,我可以在 jsp 中做到这一点,jsp 中的代码包含这样的

<jsp:include page="footer.jsp" />

【问题讨论】:

很难相信像在aspx 模板中包含文本这样基本的东西并没有以简单的方式实现。在 Java 中有四种不同的单行代码可以做到这一点:***.com/questions/14580120/… 当然只是把它放在你页面上的一个 div 中。 【参考方案1】:

这对我有用。我可以在我想要的任何页面上包含我的菜单:

<div ID="menuContent" runat="server">
    <!-- #Include virtual="/menu.aspx" -->
</div>   

在我的 menu.aspx 文件中,我有原始 html 和一些 C# 代码块,ASP 将在将内容插入页面后解决这些问题。很棒吧?

【讨论】:

基于OP问题,这是正确答案。关于 MasterPages 等的其他答案并没有直接回答 OP 问题。【参考方案2】:

您不能在 asp.net 中的现有页面中添加另一个页面。 因为asp.net 不允许在同一页面中有两个form tag。 您可以使用诸如用户控制之类的功能 更多详情http://www.codeproject.com/Articles/1739/User-controls-in-ASP-NET

编辑 1

更多 有Master pagecontent page的概念 这是一个很好的母版页链接http://www.codeproject.com/Articles/325865/Creating-Master-Page-In-ASP-NET-2010

编辑 2

母版页具有如下结构

<%@ Master Language="C#" AutoEventWireup="true" 
CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   <title></title>
   <asp:ContentPlaceHolder id="head" runat="server">
   </asp:ContentPlaceHolder>
</head>
<body>
   <form id="form1" runat="server">
      <div>
          <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

          </asp:ContentPlaceHolder>
      </div>
   </form>
 </body>
</html>

需要注意的几点 当您创建一个页面时,您只能在ContentPlaceHolder1 中添加内容,其中可能有很多。 你也可以把你的user-control 放在master-page 里面,这样它就会反映在你的页面上。

编辑 3

母版页

实际上是用户控件;您可以通过转到母版页类的代码隐藏来验证这一点,右键单击类名并选择“转到定义”。你会看到这样的东西:

public class MasterPage : UserControl

    ...

用户控件

便于显示在单个项目中重复的组件,例如菜单和面板。问题是它们不生成 .DLL,如果需要,必须手动复制到其他项目。 一些不错的链接 ASP.NET equivalent of server side includesHow to include an external html file in asp.net page

【讨论】:

【参考方案3】:

ASP.Net 有 Master Page 和 User Control 可以帮助你做类似的事情。

如果您使用的是 ASP.Net MVC,我们有 Partial View 的概念。

【讨论】:

【参考方案4】:

使用#include 将不起作用,因为如果包含的文件是 ASP.NET 页面,它将引入两个页面指令。 OP 必须使用 Ajax 下载文件,然后将其放入页面中。

【讨论】:

这并不能真正为 OP 或任何后来的访问者解决任何问题。如果是这种情况,您应该提供一些关于如何使用 Ajax 的说明

以上是关于如何将其他页面包含到 aspx 文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 asp.net 页面中包含外部 html 文件

在 asp.net 中包含 .css 文件

如何在 SharePoint WebPart 中包含 JavaScript 文件?

如何在 json 中包含图像文件? [复制]

在 MVC 网站的静态分析 (FxCop) 中包含 aspx

如何在 CodeIgniter 中包含外部库?