asp.net-mvc – 多个DateTime参数的属性路由
发布时间:2020-12-16 06:27:32 所属栏目:asp.Net 来源:网络整理
导读:我已经定义了属性路由,它将两个参数作为datetime [Route("{controller}/{action}/{*startDate:datetime}/{*endDate:datetime}")] public bool OverView(DateTime startDate,DateTime endDate) { var dt = startDate.ToString("yyyy-MM-dd"); return true; }
我已经定义了属性路由,它将两个参数作为datetime
[Route("{controller}/{action}/{*startDate:datetime}/{*endDate:datetime}")] public bool OverView(DateTime startDate,DateTime endDate) { var dt = startDate.ToString("yyyy-MM-dd"); return true; } 但不确定,它是如何可能的.属性路由适用于单个参数,但不确定它如何适用于2个参数.此外,很难知道如何将两个参数与网址区分开来 单一的param,工作正常 http://domain.com/Home/overview/2014/02/01 两个参数的网址是什么?我尝试了下面的一个,但有一个例外 http://domain.com/Home/overview/2014/02/01/2014/02/04 Exception A catch-all parameter can only appear as the last segment of the route URL. Parameter name: routeUrl 解决方法
第一种可能性
您应该通过其他方式格式化日期,因为这些是URL段分隔符…即使MVC支持多个贪婪段,中间也应该至少有一个静态段,因此路由可以区分一个结束和第二次开始. 所以,如果你只是替换你的符号 /home/overview/2014/02/01 至 /home/overview/2014-02-01 您当前的路由几乎可以正常工作,路由参数很容易将模型绑定到datetime类型实例.您的行动方法的路线声明应如下: [Route("{controller}/{action}/{startDate:datetime?}/{endDate:datetime?}")] public ActionResult OverView(DateTime? startDate,DateTime? endDate) { ... } 因此,如果您可以接受此更改(/ to – ),那么这是最简单的解决方案,因为它不需要您编写任何自定义代码(即自定义模型绑定器) 第二种可能性 有一个贪婪的路由参数并手动解析它.它将具有0,3或6个段.您应该能够手动解析这些. [Route("{controller}/{action}/{*dateRange}")] public ActionResult Overview(string dateRange) { int numberOfSegments = dateRange.Split('/').Length; if (dateRange.EndsWith("/")) { numberOfSegments--; } switch (numberOfSegments) { case 0: // no dates provided ... break; case 3: // only one date provided ... break; case 6: // two dates privided ... break; default: // invalid number of route segments ... break; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- asp.net – Alpha Five Version 10如何开发Web应
- asp.net – 如何在RowDataBound事件的Gridview中
- ASP.NET 2.0 JQuery AJAX登录
- asp.net – Excel VBA查询外部.aspx页面并检索数
- asp.net-core – 如何忽略MVC6中的路由
- asp.net – 将JSON发布到Controller
- asp.net – UseJwtBearerAuthentication返回401
- asp.net-web-api – Ninject.Web.WebApi.OwinHos
- SignalR(.NET Core)中的JWT身份验证,而不在查询字
- 我可以创建一个不回发的ASP.NET ImageButton吗?
热点阅读