如何在QueryString中编码DateTime并在asp:QueryStringParameter中读取它

Dav*_*b60 7 c# vb.net asp.net

如何在a DateTime中编码并在中QueryString读取asp:QueryStringParameter

出:(这是一个asp:HyperLink NavigateUrl)

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

在:

<asp:QueryStringParameter Name="time" 
                          QueryStringField="Time" 
                          Type="DateTime" 
                          ConvertEmptyStringToNull="true" />
Run Code Online (Sandbox Code Playgroud)

Mar*_*urd 12

除了你正在寻找之外,你自己已经回答了UrlEncode.您还需要确认什么格式asp:QueryStringParameter Type="DateTime"接受,例如,它可能需要MM/dd/yyyy HH:mm:ss无关的Web服务器的区域设置,也可能是因为它依赖于Web服务器的区域设置,在这种情况下,你需要一个不变的日期格式类似yyyy-MM-dd HH:mm:ss.

更新
这是一个工作示例:

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

ToString("o")使用往返("O","o")格式说明符转换它