jQueryUI DateTime选择器,日期格式在选择日期后更改

时间:2017-10-17 23:37:39

标签: c# jquery asp.net-mvc jquery-ui razor

我的viewmodel绑定到我的ASP.NET MVC表单,

 public class JobViewModels
    {
        public DateTime StartTime { get; set; } = DateTime.Today.AddDays(-1);
        public DateTime EndTime { get; set; } = DateTime.Today;
    }

查看:

new AjaxOptions
{
    HttpMethod = "post",
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "updatOverViewSection"
}))
                {

                        <tr>
                            <td class="form-group">
                                @Html.LabelFor(m => m.StartTime)
                                @Html.EditorFor(m => m.StartTime, new { @class = "form-control" })
                            </td>
                            <td class="form-group">
                                @Html.LabelFor(m => m.EndTime)
                                @Html.EditorFor(m => m.EndTime, new { @class = "form-control" })
                            </td>
                            <td>
                                <label></label>
                                <button type="submit" class="btn btn-primary">Search</button>
                            </td>
                        </tr>

                    </table>
                }
            </div>

功能明智它工作正常。但是当我查看视图时,当页面呈现时,它看起来像是跟随,

Date time when page loaded

但是当我从选择器中选择一个日期时间时,它会将其格式更改为以下内容。现在我能想到解决的唯一方法是,在模型中有一个字符串日期时间属性并调用startDateTime.ToString("DD-MM-YYYY hh:MM:ss"),但这似乎不是最有效的方式,我可能是错的。

Date time Selected

1 个答案:

答案 0 :(得分:1)

您可以使用@Html.TextBoxFor() @Html.TextBoxFor(m => m.StartTime, "{0:dd-MMM-yyyy hh:mm:ss tt}", new { @class = "form-control" }) ,其中第二个参数是格式字符串,例如

DisplayFormatAttribute

或者,您可以将EditorFor()应用于您的属性,[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy hh:mm:ss tt}", ApplyFormatInEditMode = true)] public DateTime StartTime { get; set; } 方法将尊重该属性

@Html.EditorFor(m => m.StartTime, new { @class = "form-control" })

作为旁注,您使用@Html.EditorFor(m => m.StartTime, new { htmlAttributes = new { @class = "form-control" } }) 不会将类属性添加到表单控件。它必须是

EditorFor()

但仅在MVC-5.1或更高版本中支持使用captureUserMedia添加html属性