如何通过URL传递日期,以便我的Action在MVC中读取?

Cop*_*ill 10 url asp.net-mvc

如何通过URL传递日期?

这是我想要做的,因为你会看到日期使用URL中无效的正斜杠

http://localhost/Controller/Action/id=0d5375aa-6d43-42f1-91f0-ea73d9beb361&date=02/12/2009
Run Code Online (Sandbox Code Playgroud)

Aar*_*ght 18

ISO 8601标准是YYYY-MM-DD,这是明确的,并且不包含任何无效的URL字符,并在DateTime.Parse /的TryParse工作正常.

另一种选择是使用您想要的任何格式,并使用HttpServerUtility.UrlEncode/UrlDecode对URL进行编码.


Dav*_*vid 4

您可以使用特定格式(例如 yyyymmdd)在查询字符串中传递日期,然后在控制器中正确解析它。

&date=02/12/2009
change to
&date=20091202   (yyyymmdd)
Run Code Online (Sandbox Code Playgroud)

您可以围绕使用这种新格式实例化的 DateTime 对象创建一个包装器,也可以在控制器中自行解析它。

public MyWrapperDate(int date)
{
    int year = date / 10000;
    int month = ((date - (10000 * year)) / 100);
    int day = (date - (10000 * year) - (100 * month));

    this.DateTimeObject = new DateTime(year, month, day);
}
Run Code Online (Sandbox Code Playgroud)