【问题标题】:Embedding an aspx page with a silverlight application in another page在另一个页面中嵌入带有 silverlight 应用程序的 aspx 页面
【发布时间】:2012-01-13 23:39:04
【问题描述】:

简而言之:

如何将一个 aspx 页面 (MyAppHost.aspx) 动态嵌入到另一个页面 (Default.aspx) 中。 MyAppHost.aspx 托管一个 Silverlight 应用程序,该应用程序从 AppHost.aspx 读取查询字符串

更详细的:

我需要根据页面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"];
}

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

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

【问题讨论】:

  • msdn.microsoft.com/en-us/library/cc838145(v=vs.95).aspx
  • 这不适用于我的情况。我已经编辑了问题以澄清。
  • 如果 Silverlight 应用程序依赖于 MyAppHost.aspx 页面,如何将其加载到 Default.aspx 的 iframe 中?
  • 我可以通过点击 Default.aspx 中的按钮来动态执行此操作吗?

标签: c# asp.net .net silverlight


【解决方案1】:

完全按照您的要求进行操作的唯一选择是使用客户端站点 JavaScript 代码插入 IFrame,其 url 指向原始页面上的 MyAooHost.aspx 页面。

让您的 Silverlight 控件接受来自页面脚本的输入而不是从查询字符串中读取参数可能是一种更简单的方法 - 这样您只需将 SL 控件添加到原始页面并在用户选择更改时更新属性(比使用 SL 控件重新加载帧快得多)。

【讨论】:

  • 是的,这种方法会更容易。要传递给silverlight 应用程序的参数是根据Default.aspx 页面中的用户输入生成的。知道如何根据用户选择使用InitParameters 动态加载 Silverlight 应用程序。
猜你喜欢
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 2010-10-13
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多