以下是示例
模型
public class MyViewModel
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")]
public DateTime Validity { get; set; }
}
控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel
{
Validity = DateTime.Now
});
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
return View(model);
}
}
查看
@model MyViewModel
@using (Html.BeginForm())
{
@Html.EditorFor(x => x.Validity)
<input type="submit" value="OK" />
}
当我选择像12.12.2011这样的日期时它工作正常但是当我使用像18.12.2011这样的日期时,它将属性(日期时间)中的值设置为01/01/0001。这对我来说是一个问题。
答案 0 :(得分:0)
您希望以“英国”格式(日/月/年)的日期,但转换代码使用“美国”格式(月/日/年)。
从字符串转换为DateTime
的代码需要使用正确的格式字符串。
您需要提供文化和格式信息的DateTime.Parse
method。您可以为此方法提供可能格式的列表,以便您可以处理各种输入。
答案 1 :(得分:0)
您可以在web.config文件中添加<globalization uiCulture="en-GB" culture="en-GB" />
。