.net – 编辑器模板不适用于DisplayFormat
发布时间:2020-12-16 04:33:36 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试为DateTime字段创建一个编辑器模板,它似乎不尊重我的DisplayFormat属性. 我的模特: public class Project{ [Display(Name="Project Name")] [Required] public string ProjectName { get; set; } [Display(Name="Start Date")] [DisplayFormat(Da
我正在尝试为DateTime字段创建一个编辑器模板,它似乎不尊重我的DisplayFormat属性.
我的模特: public class Project { [Display(Name="Project Name")] [Required] public string ProjectName { get; set; } [Display(Name="Start Date")] [DisplayFormat(DataFormatString="{0:M/d/yyyy}",ApplyFormatInEditMode=true)] public DateTime? StartDate { get; set; } } 我的编辑器模板在/Views/Projects/EditorTemplates/DateTime.cshtml文件夹中 @model DateTime? @Html.TextBoxFor(m => Model,new { @class="datepicker" }) 以下是将所有内容联系在一起的视图: @model Project <fieldset> <legend>Project</legend> <div class="editor-label"> @Html.LabelFor(m => m.ProjectName) </div> <div class="editor-field"> @Html.EditorFor(m => m.ProjectName) @Html.ValidationMessageFor(m => m.ProjectName) </div> <div class="editor-label"> @Html.LabelFor(m => m.StartDate) </div> <div class="editor-field"> @Html.EditorFor(m => m.StartDate) @Html.ValidationMessageFor(m => m.StartDate) </div> </fieldset> 当我这样的时候,我看到了约会的时间部分.当我删除编辑器模板然后它工作正常,只显示日期部分.当我有一个编辑模板时,为什么它似乎忽略了DisplayFormat? 解决方法
我们先来看看你不使用模板时会发生什么.我添加了泛型类型,使其更加清晰,区别在于什么.
@Html.TextBoxFor<Product>(product => product.StartDate) 现在让我们看看你的模板编辑器: @Html.TextBoxFor<DateTime?>(dateTime => dateTime) 请注意区别?在后一种情况下,您只是处理DateTime实例,这意味着您正在丢失模型属性定义的元数据. 通过使用模板,您负责处理元数据,该元数据应在ViewData.ModelMetadata.*中提供给您的模板.例如,在您的情况下,您将需要使用ViewData.ModelMetadata.DisplayFormatString自己格式化日期 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Helios项目的当前状态是什么?
- asp.net-mvc – bool的MVC Route Constraint
- asp.net-mvc-4 – MVC 4部分与单独的控制器和视图
- asp.net-mvc – 使用AppFabric缓存在MVC SessionState中使用
- asp.net中WebService 捕获全局异常
- IIS如何处理ASP.net MVC请求?
- 基于ASP.NET+EasyUI框架实现图片上传提交表单功能(js提交图
- asp.net-mvc – ASP.NET MVC请求过滤器
- asp.net-mvc-3 – 返回404错误ASP.NET MVC 3
- asp.net-core – 对project.json中的依赖项感到困惑