.NET

2008-11-18 21 views
9

içinde bir web hizmeti içinde sorgu dizesi (GET isteği dizisi) almak Bir web hizmeti içinde standart ASP.NET istek nesnesinde bulunan .net sorgu dizesi erişmek için bir yol bulmak için arıyorum. Bir başka deyişle bu URL'ye bir SOAP web hizmeti ayarlarsanız:.NET

http://localhost/service.asmx?id=2

Ben Kimlik değişkeni alın erişebilir miyim?

cevap

17

Asmx dosyasındaki "Request" kelimesini aradım ve bunu gördüm. Ama doğru olup olmadığından emin değilim.

this.Context.Request.QueryString["id"]; 
+0

bu hangi nesneyi temsil eder? – AnthonyWJones

+0

Web hizmeti sınıfı. Bu örnekte "Hizmet" dir; –

2

Sorduğunuzda, HttpContext.Current.Request yok mu?

2

i farklı bir yaklaşım almaya karar aynı sorunun çözümü ararken. Sorgu dizim çok sayıda değişkenle doluydu ve web dizinden sorgu dizesi verisine erişemediğimden ve her sorgu dizesi değişkenini ayrı bir parametre olarak göndermek istemediğimden, web yöntemimi beklemek üzere hazırladım bir aditional string parametresi.

parametre benim web hizmeti url vardı kez

, gerisi ileri

Uri myRef = new Uri(stringMyWindowLocationParameter); 
System.Collections.Specialized.NameValueCollection mojQuery = HttpUtility.ParseQueryString(myRef.Query); 
oldukça STRIGHT oldu .aspx sayfasında benim javascript işlevinde Window.location (sayfanın tüm url) buydu

Şimdi benim sorgu dizesi myRef nesne içinde bulunuyor ve bu onu diyoruz nasıl

// Instead trying to request query string like this 
string myId = HttpContext.Current.Request.QueryString["id"]; 

// ... I called it like this 
string myId = myRef["id"]; 

Belki de en zarif yol değil ama sorunumu çözdü.