使用带有 C# 的 ASP.NET,我想将另一个页面的内容加载到我的当前页面中。
我id="maindiv"
在一页上有一个主 div,上面有一个标题。标头包含可点击的链接,这些链接通过 get 变量(如http://www.mainpage.com&page=nextpage
. 我想在 switch case 中使用 page get 变量从指定页面加载到 maindiv。我可以很好地处理 switch case,但是如何从另一个页面加载响应?
听起来您想为所有页面保持相同的布局(页眉、导航、页脚等)。ASP.NET 2.0 引入了母版页,它们基本上是布局文件,允许您创建填充布局中占位符的内容页面。
ASP.NET 母版页允许您为应用程序中的页面创建一致的布局。单个母版页定义了您希望应用程序中所有页面(或一组页面)的外观和标准行为。然后,您可以创建包含您要显示的内容的单个内容页面。当用户请求内容页时,他们会与母版页合并以生成将母版页的布局与内容页中的内容相结合的输出。
这是MSDN 文章中的一个示例。
母版页:
<%@ 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>
一个可能的解决方案是
在http://geekswithblogs.net/ranganh/archive/2005/04/25/37635.aspx中设置 iframe, 您将使用查询字符串参数来设置 iframe 的来源
frame1.Attributes["src"] = "http://www.live.com" ;
在后面的代码中
frame1.Attributes["src"] = nextpage ;
如果您需要逻辑背后的代码,我建议使用面板并基于 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>
此相关帖子可能会为您的问题提供解决方案: