c# - 将字符串从 IHttpHandler 传递到 Javascript,然后传递到 Silverlight

标签 c# javascript silverlight ihttphandler

我正在使用处理程序充当带有字符串(实际上是 xml,但我正在尝试字符串)的服务器和我的 Silverlight 应用程序之间的代理。我已经编写了处理程序,它正确地收集了字符串(xml)。我遇到的问题是将该字符串从 JSON 转换为 javascript 可以传递回我的 Silverlight 代码的字符串。

Javascript:

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

银光:

private void button1_Click(object sender, RoutedEventArgs e)
{
    HtmlPage.Window.Invoke("xmlStart");
    string test = (String)HtmlPage.Window.Invoke("getXml");

    textBox1.Text = test;
}

以防万一处理程序代码(为了安全起见,取出了baseurl):

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。

最佳答案

您的内容类型设置为 json,但您似乎没有进行任何编码,即将服务器的响应转换为有效的 json。尝试添加类似的内容:

response = new JavaScriptSerializer().Serialize(response);

关于c# - 将字符串从 IHttpHandler 传递到 Javascript,然后传递到 Silverlight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615570/

相关文章:

c# - Log4net - 使用继承时的最佳策略

c# 在另一个方法结束时调用一个方法?

javascript - 点击时随机化数字,但绝不是相同的数字

javascript - 单击后加载 html 时如何动态设置输入的值?

javascript - 同步运行 Mongo find

c# - 将 map 显示为椭圆形

.net - Visual Studio 2010 - WPF/Silverlight 和内置网格

c# - Windows 8 App Webview 提取 cookie

c# - 如何在 JSON.Net 中将对象转换为字典?

.net - Silverlight 内存分析器是否存在?