简而言之:
如何在另一个页面(MyAppHost.aspx
)中动态嵌入aspx页面(Default.aspx
)。 MyAppHost.aspx
托管了一个从AppHost.aspx
更详细:
我需要根据页面Default.aspx
上的选择动态创建图形(位图)。我按照Default.aspx.cs
:
Image1.ImageUrl = "~/MakeImage.aspx?param1=" +
Param1.ToString() + "¶m2=" 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}¶m2={1}
中动态嵌入Silverlight应用Default.aspx
(主机Default.aspx
)。怎么可能?
编辑:
正如所建议的那样,如果我可以在Default.aspx
本身托管silverlight应用程序并使用init参数而不是查询字符串,那将会容易得多。我曾考虑过该方法,但无法弄清楚如何动态传递事件上的参数。我正在添加a new question。
答案 0 :(得分:1)
您唯一能做的就是使用客户端网站JavaScript代码来插入IFrame,并根据需要在原始页面上指向您的MyAooHost.aspx页面。
使用Silverlight控件接受来自页面的从查询字符串读取参数的脚本内容的输入可能更容易 - 这样您只需将SL控件添加到原始页面并在用户选择更改时更新属性(比使用SL控制重新加载帧要快得多。)