在asp.net中使用sliverlight的时候往往希望在silverligth控件里初始化一个数据,让silverlight可以读取并使用。
实现过程
1.打开testpage.aspx
- <form id="form1" runat="server" style="height:100%;">
- <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
- <div style="height:100%;">
- <asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/Initparamas.xap"
- MinimumVersion="2.0.30523" Width="100%" Height="100%"
- InitParameters="key1=value1,key2=value2"
- />
- </div>
- </form>
以上请注意InitParameters="key1=value1,key2=value2" 此句
2.打开sl项目中的App.xaml.cs,打到Application_Startup这个方法,修改成如下
- //定义存放读入参数的字典,命名为revalues
- public IDictionary<string, string> revalues;
- private void Application_Startup(object sender, StartupEventArgs e)
- {
- this.RootVisual = new Page();
- //把从asp.net中定义的参数传递到revalues字典中
- revalues = e.InitParams;
- }
3.把接收到的参数进行处理,我这里只是简单地把接收到的内容都通一个提示框展现,打开Page.xaml.cs文件
- public Page()
- {
- InitializeComponent();
- this.Loaded += new RoutedEventHandler(Page_Loaded);
- }
- void Page_Loaded(object sender, RoutedEventArgs e)
- {
- //取得当前app实例
- App myapp = App.Current as App;
- //定义text变量用以保存接收到的数据
- string text = string.Empty;
- //读敢接收到的数据的key和value并添加到text中
- foreach (var d in myapp.revalues)
- {
- text += d.Key.ToString() + "=" + d.Value;
- }
- //show一个提示框并在里面展现text的内容
- HtmlPage.Window.Alert(text);
- }
完成.
工程文件到我的资源里下载