使用Url时控制日期格式.动作或类似动作

本文关键字:格式 Url 控制 日期 使用 | 更新日期: 2023-09-27 17:53:21

我很清楚在查询字符串中放置日期的问题,以及在这种情况下它们忽略任何全球化的方式。我在我的应用程序中的大多数地方使用标准的英国格式dd/MM/yyyy -我在我的网页中设置了<globalization uiCulture="en-GB" culture="en-GB" />。并且还使用Custom ModelBinder来确保即使是post日期在使用UK格式时也能被解析。借鉴Melvyn Harbour - MVC ModelBinder和本地化

我读过一些帖子,建议在Url中传递日期时将格式设置为yyyy-MM-dd,这听起来是个不错的计划。问题是我如何设置,当我调用url。像这样的操作:

urlHelper.Action(actionName, controllerName, FilteringOptions);

,其中FilteringOptions是一个包含DateTime属性的类,因此:

public class FilteringOptions{
  public string SearchTerm{get;set;}
  public DateTime? FromDate{get;set;}
  public DateTime? ToDate{get;set;}
  public int? BrandID {get;set;}
  //...etc
}

我知道Url中的最后一个参数。上面的行动调用,被困在RouteValueDictionary中,在这里,DateTime属性变得不稳定,恢复到美国日期格式,而不是英国,这是我一直在处理的-这当然会使它在解析一个不能双向工作的日期时摔倒,或者几乎更糟的是,简单地交换日期和月份数字导致其他混乱。

我非常高兴使用yyyy-mm-dd格式通过日期,但是我如何确保使用该格式?-无需循环类中的所有属性并调用ToString("yyyy-mm-dd")的日期。

任何帮助都非常感谢

使用Url时控制日期格式.动作或类似动作

您可以更改系统日期格式,这将使其正常工作。