2009-07-16 2 views
1

URL에서 쿼리 문자열 값을 검색하려고합니다. 그리고 앱은 실버 라이트 앱이어야합니다. 예를 들어Silverlight 및 WCF 응용 프로그램의 URL에서 쿼리 문자열 값 수집

: 나는 쿼리 문자열을 취할 수와 실버 라이트 UI를 구축해야

http://<hostname>/silverlightApp/Default.aspx?S=Name|address|title|sal|... 같은 샘플 URL이 보일 수 있습니다.

이 작업을 수행 할 수 없거나 Silverlight가이 유형의 후보가 될 수 없습니다.

답변

1

은 당신이 할 수있는 여러 가지 방법이 있습니다. 호스팅 페이지에서, 당신은 initParams 태그를 사용하여 실버 라이트로 Request.QueryString을을 사용하여 쿼리 문자열 값을 꺼내하고 전달할 수 있습니다, 예 :

<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.

0

System.Web.HttpUtility.ParseQueryString() 메서드를 참조하십시오.이 메서드는 쿼리 문자열을 NameValueCollection으로 구문 분석합니다.

[나중에] Silverlight 런타임에 System.Web 네임 스페이스가없는 것으로 보입니다.

Silverlight 런타임과 함께 제공되는 System 네임 스페이스의 system.Uri.Query을 참조하십시오.

쿼리 속성에는 URI에 포함 된 쿼리 정보가 모두 들어 있습니다. 쿼리 정보는 물음표 (?)로 경로 정보와 분리되어 URI의 끝까지 계속됩니다. 반환되는 쿼리 정보에는 주요 물음표가 포함됩니다.

쿼리 정보는 다음의 예는 콘솔에 날짜 = 오늘? 쿼리를 기록 RFC 3986.

에 따라 이스케이프.

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"; 
+0

SilverLight 또는 SilverLight Web Project에서 사용할 수 있습니까? 이것에 약간 새로운, 적당한 기간을 사용하지 않기를위한 저를 용서하십시오. 감사합니다 – Ranjit

+0

너 한테 고마워. 나는 그것을 밖으로 시도하고 결과를 게시 할 것입니다. 지금은 WCF를 통해 SilverLight에서 기본 컨트롤 (텍스트 블록, 목록)에 바인딩 할 POCLR 개체/클래스를 가져 오려고합니다. 다시 감사드립니다 .... – Ranjit

관련 문제