2011-05-18 57 views
1

我想在代碼隱藏中發佈表單並在Iframe中顯示響應。下面的代碼是打開另一個目標網址的瀏覽器窗口,但現在顯示在Iframe中。將表單發佈到另一個網站並在iframe中顯示網頁

這是我的aspx代碼:

<body> 
    <form id="form1" runat="server"> 
     <div> 
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
      <asp:Button ID="Button1" runat="server" Text="Button1" onclick="Button1_Click" /> 
      <asp:Button ID="Button2" runat="server" Text="Button2" onclick="Button2_Click1" /> 
     </div> 
    </form> 

    <iframe name="iframe1" id="iframe1" frameborder="0" height="450px" width="100%" style="overflow:hidden;" scrolling="yes"> 
    </iframe> 
</body> 

在Button1的點擊我嘗試發佈一個形式下面的代碼。一切正常,但新的瀏覽器窗口打開,而不是在Iframe中打開它。

protected void Button1_Click(object sender, EventArgs e) 
{ 
    System.Web.HttpContext.Current.Response.Write("<form id='ssoForm' name='ssoForm' method=post action='" + formAction + "' target='iframe1'>"); 
    System.Web.HttpContext.Current.Response.Write("<input type='hidden' name='TARGET' value='" + formTarget + "' />"); 
    System.Web.HttpContext.Current.Response.Write("<input type='hidden' name='Encoding' value='B64' />"); 
    System.Web.HttpContext.Current.Response.Write("<input type='hidden' name='SAMLResponse' value='" + resp + "' />"); 
    System.Web.HttpContext.Current.Response.Write("</form>"); 

    Response.Write("<SCRIPT LANGUAGE='JavaScript'> document.forms['ssoForm'].submit();</SCRIPT>"); 
} 

回答

1

您可以嘗試將FORM標記的目標屬性設置爲您的iFrame的名稱。我相信這應該符合HTML規範,但我不知道ASP.NET是否會遵守它。

或者,您可以將實際的ASP.NET表單放在iFrame中,並讓父頁面使用JavaScript來設置iFrame內部的值並在iFrame中提交表單。

+0

如果你添加了一些代碼,你會很高興。 – 2011-05-18 20:49:15

+0

Metthew - 感謝您的回覆,但在此之前,我嘗試定義一個表單aspx頁面本身..在頁面加載和Button_click上設置隱藏的字段值添加OnClientClick從JavaScript函數提交表單。一些它如何工作。 – user228777 2011-05-20 15:51:41

相關問題