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文化来实现此目的.
尝试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不是一个非常好的设计.
| 归档时间: |
|
| 查看次数: |
1181 次 |
| 最近记录: |