2

我在silverlight 应用程序中调用了一个aspx 页面,以在目录中创建和注册一个txt 文件。

Uri ub = (new Uri(HtmlPage.Document.DocumentUri, "GenereInfos.aspx?&connexion=" + connexion + ";&id=" + this.Id));

        if (HtmlPage.IsPopupWindowAllowed)
        {
            HtmlPopupWindowOptions opt = new HtmlPopupWindowOptions();
            HtmlPage.PopupWindow(ub, "file", opt);
        }
        else
        {
            HtmlPage.Window.Navigate(ub);
        }

我必须通过我的 aspx 页面来生成我的 txt 文件,因为 silverlight 不允许它。

这里的问题是,会出现一个弹出窗口,或者页面会加载新的 uri。

我想要的是只调用 asp 中的代码(它工作得很好),而不加载 uri。

有没有办法做到这一点?

编辑:在 DGibbs 回答之后,现在还有另一个问题:

WShy 我不能在那里使用 GetResponse() 吗?

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(new Uri
                     (HtmlPage.Document.DocumentUri, "GenereInfos.aspx?&connexion=" + connexion + ";&idPocedure=" + itmProcedure.IdProcedure));
            string response = new System.IO.StreamReader(req.GetResponse().GetResponseStream()).ReadToEnd();

这里有一点答案:Silverlight 是异步的,所以我们不能调用同步的 GetResponse。

因此,调用我的 aspx 页面的最佳方法是使用此处找到的 WebClient

4

1 回答 1

0

你可以只使用WebRequest

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri
                     (HtmlPage.Document.DocumentUri, "GenereInfos.aspx?&connexion=" + connexion + ";&id=" + this.Id));
string response = new System.IO.StreamReader(req.GetResponse()
                 .GetResponseStream()).ReadToEnd();
于 2013-07-02T14:55:39.903 回答