[Silverlight] 在Silverlight 中 post 或 get 資料給其他頁面

2012-10-05


在Silverlight 中有時候需要post 或是 透過 get 方式 傳資料出去給其他頁面作為溝通..
像台灣跟許多金流公司合作會常用到這方法..

這也是最常跟其他頁面溝通的方法..

案例 : 點擊Send Data 按鈕之後 會把 Textbox 中的值傳到 http://www.in2.cc/sample/getpostdata.aspx

那網頁頁面是可以接受無論get 或是 post 名為 data 的資料..

下面是畫面配置..





第一步首先你得在嵌入Silverlight 中的.html 頁面 中的 <body> 中加入

<form id="postform" 

      action="http://www.in2.cc/sample/getpostdata.aspx" 

      method="post" 

      target="_blank" 

      style="visibility:collapse" />



其中.. action 為接收資料端的網頁,method 可以為post 或是 get 此案例是用post ,
target 如果是_blank 為開新頁面,如果是_parent就是當頁

接下來就是 Silverlight 這邊如何去呼叫此form

首先需要先引入 System.Windows.Browser;

using System.Windows.Browser;

下面為按鈕的 C# Code :

private void btnSendData_Click(object sender, RoutedEventArgs e)

{

    //取得在HTML 中叫做 postfrom 的form Element.

    HtmlElement hiddenForm = HtmlPage.Document.GetElementById("postform");

    //建立一個叫做input 的input box

    HtmlElement hiddenInput = HtmlPage.Document.CreateElement("input");

    //設定為隱藏

    hiddenInput.SetProperty("type", "hidden");

    //將值設定為txtTransData的輸入值

    hiddenInput.SetProperty("value", txtTransData.Text);

    //取定post name 為data

    hiddenInput.SetProperty("name", "data");

    //加入postform 內

    hiddenForm.AppendChild(hiddenInput);

    //模擬按下送出

    hiddenForm.Invoke("submit");

 

 

 

    //這行可加可不加,加這行防止用戶重複點擊

    hiddenForm.RemoveChild(hiddenInput);

}


這樣點擊按鈕後就可以送出資料了 …

範例:


範例下載:


當麻許的超技八 2014 | Donma Hsu Design.