【问题标题】:Load another asp.net page into current page将另一个 asp.net 页面加载到当前页面中
【发布时间】:2012-08-17 20:20:30
【问题描述】:

使用带有 C# 的 ASP.NET,我想将另一个页面的内容加载到我的当前页面中。

我有一页上有一个主 div id="maindiv",上面有一个标题。标头包含可点击的链接,这些链接通过 http://www.mainpage.com&page=nextpage 之类的 get 变量路由到相同的 url。我想在 switch case 中使用 page get 变量从指定页面加载到 maindiv。我可以很好地处理 switch case,但是如何从另一个页面加载响应?

【问题讨论】:

  • 这里有一个很好的解决方案stackoverflow.com/questions/7467488/…
  • 你想从另一个页面读取数据吗?
  • 您在寻找类似向导的功能吗?
  • @HassanBoutougha 这是否允许页面拥有自己的代码隐藏?
  • 解决方案使用文字控件显示 aspx 页面比使用 iframe 更有用

标签: c# asp.net


【解决方案1】:

听起来您想为所有页面保持相同的布局(页眉、导航、页脚等)。 ASP.NET 2.0 引入了母版页,它们基本上是布局文件,允许您创建填充布局中占位符的内容页面。

ASP.NET 母版页允许您为 应用程序中的页面。一个母版页定义了外观和 您希望所有页面的感觉和标准行为(或 页面组)在您的应用程序中。然后,您可以创建个人 包含您要显示的内容的内容页面。当用户 请求内容页面,它们与母版页合并以生成 将母版页的布局与内容相结合的输出 从内容页面。

这是来自MSDN article 的示例。

母版页:

<%@ Master Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 
    1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server" >
    <title>Master page title</title>
</head>
<body>
    <form id="form1" runat="server">
        <div><asp:contentplaceholder id="Main" runat="server" /></div>
        <div><asp:contentplaceholder id="Footer" runat="server" /></div>
    </form>
</body>
</html>

内容页面:

<% @ Page Language="C#" MasterPageFile="~/Master.master" Title="Content Page 1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
    Main content.
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="Footer" Runat="Server" >
    Footer content.
</asp:content>

【讨论】:

    【解决方案2】:

    一个可能的解决方案是

    设置 iframe 就像http://geekswithblogs.net/ranganh/archive/2005/04/25/37635.aspx 您将使用查询字符串参数来设置 iframe 的来源

    frame1.Attributes["src"] = "http://www.live.com" ;
    

    在代码后面

    frame1.Attributes["src"] = nextpage ;
    

    【讨论】:

    • 你有正确的解决方案显示源,我觉得它很优雅,但在你必须引用它之后......
    【解决方案3】:

    如果您需要逻辑代码,我建议使用面板并基于 URL 变量显示或使用 .ASCX 用户控制文件并基于 URL 变量加载这些文件。

    <asp:Panel ID="pnl1" runat="server" visible="false">
        page 1...
    </asp:Panel>
    
    <asp:Panel ID="pnl2" runat="server" visible="false">
        page 2...
    </asp:Panel>
    

    【讨论】:

    • 我宁愿不使用面板。让它变得混乱,我试图将每个“页面”分开到它自己的文件中。我以前没有使用过 .ascx 用户控件。这些是如何工作的?
    【解决方案4】:

    此相关帖子可能会为您的问题提供解决方案:

    How to display an ASPX in another ASPX's DIV dynamically at runtime?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-04
      • 2016-01-20
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      相关资源
      最近更新 更多