用谷歌搜索了近4个小时。我有一个带有DateTime属性的ViewModel,我不需要时间:
public class SomeViewModel
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
[Required(ErrorMessage="Start Date is required")]
[DataType(DataType.Date, ErrorMessage="Start date is not a valid date.")]
public DateTime StartDate { get; set; }
}
然后在我的编辑视图中,我使用以下方法创建了一个输入:
@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control" } })
我尝试编辑某个实体,其标识值为 13/01/2016 (2016年1月13日)。我的输入呈现如下:
<input class="form-control text-box single-line" data-val="true" data-val-date="The field StartDate must be a date." data-val-required="Start Date is required" id="StartDate" name="StartDate" type="date" value="13/01/2016" />
datetimepicker看起来像这样,它没有显示日期,而是显示格式的占位符:
在巴西,本地格式为dd / MM / yyyy(与输入值相似),因此使用此格式将日期输入到输入值,但输入可以&#39 ;了解这种格式,并没有显示日期。如果我使用浏览器的检查器并将输入值更改为2016-01-13(yyyy-mm-dd格式),我的日期会正确显示,并且使用本地格式(dd / MM / yyyy) :
<input class="form-control text-box single-line" data-val="true" data-val-date="The field StartDate must be a date." data-val-required="Start Date is required" id="StartDate" name="StartDate" type="date" value="2016-01-13" />
我想让用户以本地格式查看和编辑。我怎样才能做到这一点?我看到了一些关于创建自定义模板的建议,但想知道是否有更简单的方法来实现这一点。
当我将数据发布到操作时,它们会正确绑定并正确存储。当我尝试获取该值并在编辑器中显示时,我的问题就开始了,所以使用可以编辑它。