创建页面的新实例并获取URL

时间:2010-08-06 09:37:41

标签: c# asp.net silverlight web-services

我是一名初学网络程序员。我一直在编写桌面应用程序。 现在,我已经在Silverlight中创建了这个Web应用程序,它使用我自己的Web服务来查询数据库。问题是,应用程序功能之一是打开PDF文件的能力。我知道silverlight不允许你这样做,但是在silverlight应用程序的顶部使用IFrame,你可以显示带有de pdf文件的页面(使用acrobat插件)。 所以这就是问题,我的silverlight应用程序将pdf路径传递给Web服务,作为回报,Web服务将创建一个新页面并将新页面URI传回,以便它可以显示在IFrame上:

页面代码Behing:

public partial class PDFViewer : System.Web.UI.Page
{
    string Filename = string.Empty;

    public Uri Uri
    {
        get { return HttpContext.Current.Request.Url; }
    }

    public PDFViewer(string filename)
    {
        Filename = filename;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "Application/pdf";

        Response.WriteFile(Filename); //Write the file directly to the HTTP content output stream.

        Response.End();
    }
}

WebMethod代码:

    [WebMethod]
    public string GetReport(string filename)
    {
        PDFViewer viewer = new PDFViewer(filename);

        return viewer.Uri.AbsoluteUri;
    }

这只返回Web服务URL。 所以主要的问题是:如何创建页面实例并获取该页面URL?

解决方案可能在这里: http://forums.silverlight.net/forums/p/76977/372282.aspx

“在我的Silverlight应用程序中,我通过传入查询字符串我的id来打开一个新的Web浏览器,页面处理它,查询数据库,检索所选对象并使用响应方法进行渲染。”

我只是不知道该怎么做。

非常感谢任何帮助。

佩德罗

1 个答案:

答案 0 :(得分:0)

也许这会有所帮助。

无论你的silverlight对象嵌入在何处,都会将iframe设为id =“xContainer”

从你的silverlight代码中将scr设置为你想要显示的pdf

HtmlPage.Document.GetElementById("xContainer").SetProperty("src", "http://google.com");