从Silverlight和WCF应用程序中的URL收集查询字符串值

时间:2009-07-16 16:37:16

标签: wcf silverlight

我正在尝试从网址中检索查询字符串值。该应用程序应该是一个silverlight应用程序。

对于Eg:示例网址可能看起来像http://<hostname>/silverlightApp/Default.aspx?S=Name|address|title|sal|...

我应该能够获取查询字符串并构建Silverlight UI。

可以这样做,或者Silverlight不适合这种类型。

2 个答案:

答案 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";