2010-03-17 11 views
6

Nasıl bir QueryString bir DateTime kodlamak ve asp:QueryStringParameter okumak?nasıl bir QueryString bir DateTime kodlamak ve asp okumak için: QueryStringParameter

üzerinden: (bir asp:HyperLink NavigateUrl var) içinde

String.Format("~/Reports/Logs/Option_History.aspx?OptionID={0}&time={1}", _ 
       id, _ 
       time) 

: Eğer UrlEncode aradığınız hariç

<asp:QueryStringParameter Name="time" 
          QueryStringField="Time" 
          Type="DateTime" 
          ConvertEmptyStringToNull="true" /> 
+0

Şimdiye kadar çalıştı ne sorun nedir kullanarak dönüştürür? –

+0

Tarih, sorgu dizesini iletmiyor. Bu "/" gibi değil ... httputility.htmlencode (time) kullanabileceğimi biliyorum ve QueryStringParameter'da bir dize olarak okuyabilirim. Sonra, httputility.htmldecode kullanabilir ve veri kaynağı tarafından çağrılan fonksiyonda datetime olarak yayınlayabilirim, ama bir şekilde biçimlendirebilir miyim diye merak ediyorum, bu yüzden QueryStringParameter tarafından doğrudan datetime olarak okunabilir. – DavRob60

cevap

12

Sen, kendin cevapladım. Ayrıca, asp:QueryStringParameter Type="DateTime"'un hangi biçimleri kabul ettiğini doğrulamanız gerekir. web sunucusunun bölge ayarlarından bağımsız olarak MM/dd/yyyy HH:mm:ss gerektirebilir veya web sunucusunun bölge ayarlarına bağlı olarak olabilir, bu durumda yyyy-MM-dd HH:mm:ss gibi bir değişmez tarih biçimine ihtiyacınız vardır.

Güncelleme İşte
çalışan bir örnek:

String.Format("~/Reports/Logs/Option_History.aspx?OptionID={0}&time={1}", _ 
       id, _ 
       HttpUtility.UrlEncode(time.ToString("o"))) 

ToString("o")Round-trip ("O", "o") Format Specifier

İlgili konular