C# DataAnnotation不显示存储在ViewModel中的数据
我有一个编辑视图。将传递一个填充的C# DataAnnotation不显示存储在ViewModel中的数据,c#,asp.net-mvc-4,razor,data-annotations,C#,Asp.net Mvc 4,Razor,Data Annotations,我有一个编辑视图。将传递一个填充的ViewModel,用户可以在其中编辑和提交 <div class="form-group"> <strong>Date Effective:</strong> <div class="col-md-10"> <p> @Html.EditorFor(model => model.storeConfigu
ViewModel
,用户可以在其中编辑和提交
<div class="form-group">
<strong>Date Effective:</strong>
<div class="col-md-10">
<p>
@Html.EditorFor(model => model.storeConfiguration.DateEffective)
@Html.ValidationMessageFor(model => model.storeConfiguration.DateEffective)
</div>
</div>
这将日期显示为字符串,并允许轻松编辑。然而,我遇到了数据注释,发现通过添加[DataType(DataType.Date)]
我能够获得一个有用的工具来选择日期
不幸的是,当在上面的“编辑”视图中使用时,它会显示一个空的日期选择器,而不是显示ViewModel
中的日期
是否可以在不从我的编辑视图中删除ViewModel
数据的情况下获取此日期拾取工具
编辑:
在试图追踪这个bug时,我在查看“Inspect元素”时遇到了这个问题
<input class="text-box single-line" data-val="true" data-val-date="The field DateEffective must be a date." id="storeConfiguration_DateEffective" name="storeConfiguration.DateEffective" type="date" value="11/5/2014">
这表明正确的值仍然存储在那里,只是没有显示给用户
编辑2:
初步测试表明,[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“{0:yyyy-MM-dd}”)]
正在工作。我不完全理解它,但这似乎是视图访问日期所需的格式。从那里,EditorFor
可以在日期拾取工具中显示它,该工具是在年月日组织的,这对我来说很好
如果有人对这是做什么和为什么有一个可靠的答案,我会接受它作为选择的答案 基于此,问题可能是设置value属性的日期格式。这就是我刚才发现的错误消息给出的内容。我想你可能走对了<代码>指定值“11/05/2014”不符合所需格式“yyyy-MM-dd”。
<input class="text-box single-line" data-val="true" data-val-date="The field DateEffective must be a date." id="storeConfiguration_DateEffective" name="storeConfiguration.DateEffective" type="date" value="11/5/2014">