将格式转换为日期的问题:dd.MM.yyyy为mvc中的MM / dd / yyyy

时间:2011-04-20 11:03:18

标签: asp.net-mvc-3 asp.net-mvc-3-areas

以下是示例

模型

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。这对我来说是一个问题。

2 个答案:

答案 0 :(得分:0)

您希望以“英国”格式(日/月/年)的日期,但转换代码使用“美国”格式(月/日/年)。

从字符串转换为DateTime的代码需要使用正确的格式字符串。

您需要提供文化和格式信息的DateTime.Parse method。您可以为此方法提供可能格式的列表,以便您可以处理各种输入。

答案 1 :(得分:0)

您可以在web.config文件中添加<globalization uiCulture="en-GB" culture="en-GB" />