2013-06-05 74 views
1

我在JSP + JSTL(JAVA)這個代碼中插入一些HTML到頁面:如何包括從JSP + JSTL相當於我的.aspx頁面中外部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"/> 

非常感謝。

回答

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; 
} 

聲明,我沒有測試它,它是一個起點,而不是一個隨時可用的粘貼解決方案。

享受

+0

感謝這個偉大的答案@Mikey。但是,有沒有其他方法可以將其直接包含在HTML中,而無需使用代碼或Java腳本? – Coyolero

+0

您是否希望服務器提出額外內容或客戶端的請求?您可以使用javascript/jquery讓客戶端發出請求。如果您希望服務器發出請求並將結果包含在發送給客戶端的頁面中,則必須使用某種服務器端代碼。您可以使用代碼隱藏功能(例如aspx或通過可重用的用戶控件.ascx)執行此操作,或者如果您希望避免代碼隱藏,可以通過在HTML中使用內聯服務器代碼發出請求來完成此操作。 http://weblogs.asp.net/ahmedmoosa/archive/2010/10/06/embedded-code-and-inline-server-tags.aspx – mikey