MVC中的日期格式

时间:2015-07-21 21:22:18

标签: javascript asp.net-mvc date model-view-controller datepicker

我的视图模型和控制器似乎以不同的格式保存日期时间。例如,在我在HTML文本框中的视图中,如果我在2015年12月7日输入,它将保存该值,就好像它是" 2015年12月7日"。我正在使用Boostrap Javascript DateTime Picker。 (附注:如果我输入" dateFormat"对于日期时间选择器,选择器将不起作用,这就是我注释掉该行的原因)

有没有办法让我可以更改HTML文本框的保存格式?

我的观点型号:(部分)

 <div class="form-group">
@Html.Label("Actual Completion Date", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Actual_Completion_Date, new { htmlAttributes = new { @Value = Model.Actual_Completion_Date, @class = "form-control" } })
            </div>
        @Html.ValidationMessageFor(model => model.Actual_Completion_Date, "", new { @class = "text-danger" })
    </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>

    </div>
}

@section scripts {
    <script type="text/javascript">
        $(function () {
            $('#Actual_Completion_Date').datetimepicker({
                //dateFormat: "dd/mm/yyyy",
                defaultDate: '@Model.Actual_Completion_Date',
                format: 'L',
                showClose: true,
                showClear: true,
                toolbarPlacement: 'top',
            });

            $('#Actual_Completion_Date').datetimepicker({
                defaultDate: '@Model.Actual_Completion_Date',
                format: 'LT',
                showClose: true,
                showClear: true,
                toolbarPlacement: 'top',
                stepping: 15,
            });
        });
    </script>
}

我的模型(部分):

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    public Nullable<System.DateTime> Date_Assigned { get; set; }

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    public Nullable<System.DateTime> Actual_Completion_Date { get; set; }

有任何建议或指示吗?非常感谢提前。

1 个答案:

答案 0 :(得分:0)

如何解析datetime取决于发布值的当前语言和作为查询字符串传递的值。

使用不变文化解析作为路径一部分传递的值。用f12工具或Fiddler检查你有什么样的要求。

如果你想改变行为,你会改变线程的固有文化(对于发布的值和查询字符串)或注册你自己的midelbinder(对于路由值)