我有一个供用户使用的日志表,并希望按userId
和日期时间参数提取记录。
如何创建路由配置,以便我的网址可以是:
日志/用户ID /
日志/用户ID /年/
日志/用户名/年/月/
日志/用户名/年/月/日/
和我的行动方法如下:
[HttpGet]
public ActionResult Read(int? userId, int? year, int? month, int? day)
{
}
必然我不想只需要一条路线,如果它们是某些路线的解决方案我很欣赏它,但我希望我的动作方法的语法可能如上所述。 感谢。
答案 0 :(得分:0)
只有路线中的最后一个参数才是可选的。我建议你做这样的路线:
Logs/{userid}
...并使用查询字符串表示其余参数。
Logs/{userid}?year=2014&month=1&day=20
或者,您可以将整个日期作为可选字符串传递,然后在操作中解析它:
Logs/{userId}/{date?}
Logs/{userId}/2014
Logs/{userId}/2014-01
Logs/{userId}/2014-01-20
[HttpGet]
public ActionResult Read(int userId, string date = null)
{
}