MVC应用程序中的自定义日期格式问题

Pro*_*ofK 3 asp.net-mvc metadata data-annotations

我有以下模型和视图,我非常希望以'dd/MM/yyyy'格式接受日期值.但是,尽管使用了DisplayFormat注释,我仍然会使用我选择的格式获得验证错误.

[MetadataType(typeof(MilestoneMetadata))]
public partial class Milestone {    
    public class MilestoneMetadata {
        [Required][DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
        public object Date { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

和观点:

<div class="editor-field">
    <%: Html.EditorFor(model => model.Date) %> 
    <%: Html.ValidationMessageFor(model => model.Date) %>
</div>
Run Code Online (Sandbox Code Playgroud)

命名空间等对于注释和主类在同一名称空间中是正确的.这不是我第一次遇到这个问题,但是我没有看到注释的结果,这些注释会影响表单值和模型之间的映射.日期模板对我没有帮助,因为我无法找到一种方法来设置在发布创建或更新时如何解析日期.

注意: 我不希望使用不同的UI文化来实现此目的.

Dar*_*rov 5

尝试uiCulture在web.config中设置(如果你将它留给auto客户端浏览器文化将被使用):

<globalization uiCulture="en-US" 
               requestEncoding="utf-8" 
               responseEncoding="utf-8" />
Run Code Online (Sandbox Code Playgroud)

en-US当默认模型绑定器解析请求值时,这将强制使用文化格式(根据需要调整所需的文化).

也有一个Date类型的属性System.Object不是一个非常好的设计.