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

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

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

【问题讨论】:

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

标签: asp.net


【解决方案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 includes
How to include an external html file in asp.net page

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 这并不能真正为 OP 或任何后来的访问者解决任何问题。如果是这种情况,您应该提供一些关于如何使用 Ajax 的说明
      猜你喜欢
      • 1970-01-01
      • 2021-12-22
      • 2015-10-30
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多