有关如何在启动时从URL QueryString传递参数到Silverlight的任何想法?
谢谢
答案 0 :(得分:3)
您可以采取的一种方法是公开可以从JavaScript访问的方法。因此,在xaml.cs文件中,您需要将以下内容添加到构造函数中:
this.Loaded += new RoutedEventHandler(Page_Loaded);
然后添加以下事件处理程序:
void Page_Loaded(object sender, RoutedEventArgs e)
{
HtmlPage.RegisterScriptableObject("YourControlName", this);
}
和
[ScriptableMember]
public void YourMethod(string yourData)
{
// Do your stuff here
}
然后在实例化Silverlight控件的ascx或aspx页面中添加以下JavaScript:
var silverlightControl;
function onSilverlightLoad(sender, args) {
silverlightControl = sender.getHost();
var yourData = "some data";
silverlightControl.Content.YourControlName.YourMethod(yourData);
}
这也意味着您的Silverlight控件必须通过<object...
标记而非<asp:Silverlight...
答案 1 :(得分:2)
虽然Chris的方法可行,但通过Silverlight initialization parameters feature传递启动信息更容易。
答案 2 :(得分:2)
如果您只需要获取查询字符串的键值对,那么使用HtmlPage类的方法就会简单得多:
HtmlPage.Document.QueryString["your_key"];