我正在尝试从网址中检索查询字符串值。该应用程序应该是一个silverlight应用程序。
对于Eg:示例网址可能看起来像http://<hostname>/silverlightApp/Default.aspx?S=Name|address|title|sal|...
我应该能够获取查询字符串并构建Silverlight UI。
可以这样做,或者Silverlight不适合这种类型。
答案 0 :(得分:1)
有多种方法可以做到这一点。在托管页面中,您可以使用Request.QueryString提取查询字符串值,然后使用initParams标记将它们传递给Silverlight,即:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
width="100%" height="100%">
<param name="source" value="/ClientBin/MyApplication.xap" />
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40620.0" />
<param name="autoUpgrade" value="true" />
<param name="windowless" value="true" />
<param name="initParams" value="<%=InitParameters %>" />
<param name="splashScreenSource" value="<%=SplashScreenSource %>" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40620.0" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight"
style="border-style: none" />
</a>
</object>
或者从Silverlight应用程序本身中,您可以使用HtmlPage.Document.documentUri来获取URI的查询字符串和其他部分,例如:
Uri uri = HtmlPage.Document.DocumentUri;
一旦你获得了实际的查询字符串,就可以使用正则表达式或任何你选择的毒药来解析它。
HTH。
答案 1 :(得分:0)
请参阅System.Web.HttpUtility.ParseQueryString()
方法,该方法将查询字符串解析为NameValueCollection
。
[稍后]抱歉,Silverlight
运行时似乎没有System.Web
命名空间。
请参阅Silverlight运行时提供的System
命名空间中的system.Uri.Query
。
Query属性包含URI中包含的任何查询信息。查询信息通过问号(?)与路径信息分开,并继续到URI的末尾。返回的查询信息包括前导问号。
根据RFC 3986转义查询信息。
以下示例将查询?date = today写入控制台。
Uri baseUri = new Uri ("http://www.contoso.com/");
Uri myUri = new Uri (baseUri, "catalog/shownew.htm?date=today");
outputBlock.Text += "Uri.Query: ";
outputBlock.Text += myUri.Query;
outputBlock.Text += "\n";