如何在JSP + JSTL等效项中包含我的.aspx页面中的外部HTML

时间:2013-06-05 22:57:31

标签: html asp.net .net

我在JSP + JSTL(Java)中有这个代码,可以在页面中插入一些HTML:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="caasPath" value="http://wwww.MyExampleSite.com/header/default"/>
<c:import url="${caasPath}/header?contentType=html"/>

我需要在ASP.NET Web窗体(.aspx文件)中执行相同的操作。我尝试使用.ascx,但我不知道如何在不使用iframe的情况下直接在页面中插入html。

以下是MSDN中有关如何转换Java代码并使用Web窗体控件的示例http://msdn.microsoft.com/en-us/library/aa478990.aspx

与此代码等效的Asp.Net(.aspx)是什么?

我尝试过类似的东西,但它不起作用(http://msdn.microsoft.com/en-us/library/sbz9etab%28v=vs.85%29.aspx

<%@ Register Src="http://wwww.MyExampleSite.com/header/default/header?contentType=html" TagName="header"  Tagprefix="cta" %>
<cta:header ID="headerSection" runat="server"/>

非常感谢。

1 个答案:

答案 0 :(得分:2)

据我所知,没有一个很好的1-liner可用。但是你可以创建一个方法(让我们称之为'dotnetImport')来发出一个web请求并像这样调用它:

<%= dotnetImport("http://wwww.ExampleSite.com/header/default/header?contentType=html"); %>

其中定义了dotnetImport:

public string dotnetImport(string address) {
  WebRequest request = WebRequest.Create (address);
  request.Credentials = CredentialCache.DefaultCredentials;
  HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
  Stream dataStream = response.GetResponseStream ();
  StreamReader reader = new StreamReader (dataStream);
  string responseFromServer = reader.ReadToEnd ();
  // dispose the above... use best practices to avoid memory leaks.
  return responseFromServer;
}

免责声明,我没有对此进行测试,它是一个起点,而不是一个随时可用的粘贴解决方案。

享受