日期时间格式在日期输入中无法识别

时间:2016-01-11 22:38:53

标签: asp.net-mvc html5 date razor localization

用谷歌搜索了近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看起来像这样,它没有显示日期,而是显示格式的占位符

Input Component

在巴西,本地格式为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" />

Input with datetime!

我想让用户以本地格式查看和编辑。我怎样才能做到这一点?我看到了一些关于创建自定义模板的建议,但想知道是否有更简单的方法来实现这一点。

当我将数据发布到操作时,它们会正确绑定并正确存储。当我尝试获取该值并在编辑器中显示时,我的问题就开始了,所以使用可以编辑它。

0 个答案:

没有答案