2010-03-17 13 views
6

如何在QueryString中編碼DateTime並在asp:QueryStringParameter中讀取它?如何在QueryString中編碼DateTime並在asp:QueryStringParameter中讀取它

出: (這是一個asp:HyperLink NavigateUrl

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

在:

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

你怎麼試了一下到目前爲止的問題轉化呢? –

+0

日期不傳遞查詢字符串。它不喜歡「/」... 我知道我可以使用httputility.htmlencode(time),然後在QueryStringParameter中將其作爲字符串讀取。然後我可以使用httputility.htmldecode並將其作爲日期時間在數據源調用的函數內部進行轉換,但是我想知道是否可以通過某種方式對其進行格式化,以便通過QueryStringParameter將其作爲日期時間直接讀取。 – DavRob60

回答

12

你自己回答了這個問題,除非你正在尋找UrlEncode。您還需要確認asp:QueryStringParameter Type="DateTime"接受的格式,例如無論Web服務器的區域設置如何,它都可能需要MM/dd/yyyy HH:mm:ss,或者根據Web服務器的區域設置,它可能是,在這種情況下,您需要像yyyy-MM-dd HH:mm:ss這樣的不變日期格式。

更新
這裏有一個工作示例:

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

相關問題