我很清楚在查询字符串中放置日期的问题,以及在这种情况下它们忽略任何全球化的方式。我在我的应用程序中的大多数地方使用标准的英国格式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")的日期。
任何帮助都非常感谢
您可以更改系统日期格式,这将使其正常工作。