在View Model上未正确设置DateTime属性

时间:2011-04-14 19:30:29

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

当我的带有以下视图的表单发布到我的控制器操作MyAction时,我在我的StartDate属性上获得了1/1/0001 12:00:00 AM的日期,即日期的格式应该是dd / MM / yyyy。我在表格上将其设置为14/04/2011,但它是在1/1/0001。是否有一些文化或设置我没有正确配置?

在我的控制器中,文化设置为

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-AU"); 

行动发布到:

[HttpPost]
public ActionResult MyAction(MyViewModel myViewModel)
{            
    if (!ModelState.IsValid) return View("Index", myViewModel);
    ...

查看型号:

public class MyViewModel 
{
    [DataType(DataType.Date)]
    [DisplayName("Start Date")]
    [Required]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime StartDate { get; set; }
}

观看视频:

<%=Html.EditorFor(m => m.StartDate, new { style = "width: 110px;", @class = "date" })%>

1 个答案:

答案 0 :(得分:0)

我的不好,我没有在Thread.CurrentThread.CurrentCulture中设置MyAction,只在Index行动中设置BaseController。我将逻辑移动到所有控制器都扩展的{{1}}类中。