0

以下是示例

模型

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

4

2 回答 2

0

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

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

您需要采用文化和格式信息的DateTime.Parse方法。你可以给这个方法一个可能的格式列表,这样你就可以处理各种输入。

于 2011-04-20T11:10:47.503 回答
0

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

于 2012-04-09T11:02:48.597 回答