在另一页中嵌入带有silverlight应用程序的aspx页面

时间:2012-01-13 23:39:04

标签: c# asp.net .net silverlight

简而言之:

如何在另一个页面(MyAppHost.aspx)中动态嵌入aspx页面(Default.aspx)。 MyAppHost.aspx托管了一个从AppHost.aspx

读取查询字符串的silverlight应用程序

更详细:

我需要根据页面Default.aspx上的选择动态创建图形(位图)。我按照Default.aspx.cs

中的说明进行了操作
Image1.ImageUrl = "~/MakeImage.aspx?param1=" + 
Param1.ToString() + "&param2=" Param2.ToString();

MakeImage.aspx

image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

这很好用。我已经对项目进行了更改,以利用silverlight生成图形。我的Silverlight应用程序嵌入在测试(默认)aspx页面(MyAppHost.aspx)中,它被设计为接受来自MyAppHost.aspx的查询字符串,如下所示。

MyApp.xaml.cs,我有

if (HtmlPage.Document.QueryString.ContainsKey("param1"))
{
        Param1 = HtmlPage.Document.QueryString["param1"];
}

我需要根据MyApp中的用户选择,在MyAppHost.aspx?param1={0}&param2={1}中动态嵌入Silverlight应用Default.aspx(主机Default.aspx)。怎么可能?

编辑: 正如所建议的那样,如果我可以在Default.aspx本身托管silverlight应用程序并使用init参数而不是查询字符串,那将会容易得多。我曾考虑过该方法,但无法弄清楚如何动态传递事件上的参数。我正在添加a new question

1 个答案:

答案 0 :(得分:1)

您唯一能做的就是使用客户端网站JavaScript代码来插入IFrame,并根据需要在原始页面上指向您的MyAooHost.aspx页面。

使用Silverlight控件接受来自页面的从查询字符串读取参数的脚本内容的输入可能更容易 - 这样您只需将SL控件添加到原始页面并在用户选择更改时更新属性(比使用SL控制重新加载帧要快得多。)