我正在使用處理程序充當服務器與字符串(實際上是xml,但我嘗試使用字符串)和我的Silverlight應用程序之間的代理。我已經編寫了處理程序,它正確地收集了字符串(xml)。我遇到的問題是將該字符串從JSON轉換爲可以傳回給我的Silverlight代碼的字符串。將字符串從IHttpHandler傳遞給Javascript,然後傳遞給Silverlight
的Javascript:(取出安全的BaseURL)
private void button1_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Invoke("xmlStart");
string test = (String)HtmlPage.Window.Invoke("getXml");
textBox1.Text = test;
}
公正的情況下處理代碼:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var xmlReturn = new String("");
function xmlStart() {
$.getJSON('xmlProxy.ashx', function (data) {
setXml(data);
});
}
function setXml(data) {
xmlReturn = data;
}
function getXml() {
alert(xmlReturn);
return xmlReturn;
}
的Silverlight
namespace HttpHandler_Proxy
{
public class xmlProxy : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
WebClient getCap = new WebClient();
string baseurl = "some_url";
string response = getCap.DownloadString(baseurl);
context.Response.ContentType = "application/json";
context.Response.Write(response);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
我相對論新雙方的Javascript和jQuery,所以這可能是一個微不足道的問題,爲此我表示歉意。在此版本的代碼中,它從不將xmlReturn
設置爲除""
之外的任何其他內容
我已經完成了其他版本,但代碼總是以null/undefined /「」返回Silverlight。
這很棒!補充說,並通過與String()的變種,它的工作!謝謝! – Dan