【问题标题】:mvc.net DateTime with Time part in URIURI 中带有时间部分的 mvc.net DateTime
【发布时间】:2009-12-30 12:09:23
【问题描述】:

我有一组操作在可指定到分钟的范围内返回时间序列数据。 它们适用于查询字符串,

/mycontroller/myaction?from=20091201 10:31&to=20091202 10:34
有或没有 URL 编码的冒号,但我认为有一个漂亮的 URL 会很好 /mycontroller/myaction/from-20091201 10:31/to-20091202 10:34
但这现在让 IIS 感到恐惧,因为它不喜欢 URI 中的冒号,所以我收到“错误请求”响应。

那么我的问题是,什么是推荐/标准的行动方案,以确保我可以把时间留在那里?

我是否需要编写自定义 ModelBinder 来解析我自己的日期时间格式?操作是否应该只获取fromto 的字符串并使用自定义格式解析,例如"YYYYMMDD-HHmm"。我可以在某处指定自定义格式吗?如果是在哪里?还是我应该放弃这个愚蠢并坚持使用查询字符串参数?

哦,我看到很多人都在谈论 RESTful URL;从我读过的内容来看,没有什么说查询字符串不是 RESTful 的——更多的是关于适当使用现有的 HTTP 操作类型。

【问题讨论】:

    标签: asp.net-mvc datetime uri modelbinders datetime-format


    【解决方案1】:

    你说得对,REST 并不意味着它不在文件夹结构中就不是 REST。

    路径结构用于描述资源。查询字符串仍可用于描述此类资源的过滤子集。日期范围完全符合过滤条件,因此应该是完全 RESTful 作为查询字符串传入的。

    【讨论】:

    • 谢谢 Martijn,所以我从您的回复中得知您不会费心尝试将其塞入 URI 中?我想我最喜欢这样,因为我也有一天的 URI,并且作为 controller/action/20091201 工作得很好
    • 是的,我会将过滤器属性保留为请求字符串。如果那一天不是资源,即使是一天,即认为:/agenda/20091201/appointments/1 与 /cars?builtAfter=20091201。
    猜你喜欢
    • 2016-10-08
    • 2017-05-30
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2013-02-13
    相关资源
    最近更新 更多