C# 带有日期值的下拉列表提交错误

C# 带有日期值的下拉列表提交错误,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,嗨,我有一个日期的下拉列表 ViewBag.fyDropdown = new SelectList(db.FinancialYear, "ID", "FY"); ID是日期 我正在视图中显示它 @Html.DropDownList("fyDropdown") 我的控制器 public ActionResult Index(DateTime? fyDropdown) 在数据库中,我有2014年4月1日Monthdate在SQL中返回4 提交表单后的URL为 ResourceProjected

嗨,我有一个日期的下拉列表

ViewBag.fyDropdown = new SelectList(db.FinancialYear, "ID", "FY");
ID是日期

我正在视图中显示它

@Html.DropDownList("fyDropdown")
我的控制器

public ActionResult Index(DateTime? fyDropdown)
在数据库中,我有2014年4月1日Monthdate在SQL中返回4

提交表单后的URL为

ResourceProjectedCapacity?MeetingID=&fyDropdown=01%2F04%2F2014+00%3A00%3A00

在控制器中,这被翻译为月=1,日=4,这是一个文化问题

我声明为字符串,然后

 Datetime FY = DateTime.Parse(FYDropdown);

似乎是一个文化问题。DD/MM/YYYY是英国格式。您可以在SQL中使用格式设置所需区域性的日期,然后应该会得到正确的结果。或者只设置日期时间区域性。硬编码格式解决不了任何问题。编写区域性不变代码的正确方法是将日期作为日期参数发送到服务器,并完全避免不必要的转换。您甚至可以获得性能提升,因为您在不进行任何转换的情况下发送的数据更少