2010-03-17 5 views
6

Wie ein DateTime in einem QueryString kodieren und in den asp:QueryStringParameter lesen?Wie ein Datetime in einer Abfrage-Zeichenfolge kodieren und in der asp lesen: Querystringparameter

aus: (es ist ein asp:HyperLink NavigateUrl)

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

in:

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

mit Was ist das Problem mit dem, was Sie bisher versucht? –

+0

Das Datum übergibt die Abfragezeichenfolge nicht. Es mag nicht das "/" ... Ich weiß, ich könnte httputility.htmlencode (Zeit) verwenden und es dann als eine Zeichenfolge im QueryStringParameter lesen. Dann könnte ich httputility.htmldecode verwenden und es als datetime innerhalb der Funktion, die von der Datenquelle aufgerufen wird, umwandeln, aber ich frage mich, ob ich es irgendwie formatieren könnte, so dass es vom QueryStringParameter direkt als datetime gelesen wird. – DavRob60

Antwort

12

Du hast es selbst beantwortet, außer Sie UrlEncode suchen sind. Sie müssen auch bestätigen, welches Format asp:QueryStringParameter Type="DateTime" akzeptiert, z. es kann MM/dd/yyyy HH:mm:ss unabhängig von der Region Einstellungen des Webservers erfordern, oder es könnte abhängig von den Regionseinstellungen des Webservers sein, in diesem Fall benötigen Sie ein invariantes Datumsformat wie yyyy-MM-dd HH:mm:ss.

aktualisieren
Hier ist ein funktionierendes Beispiel:

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

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

Verwandte Themen