获取日期时间始终返回MVC3中的控制器

时间:2012-11-15 02:17:23

标签: jquery asp.net-mvc-3 data-annotations

使用MVC3和jQuery插件datepicker。

我可以看到日历,我可以将日期设置为字段。但是当我将模型发布回控制器时,我总是为该属性获取空值。并且它将该特定日期显示为无效日期。

这是我的模特。

[DataType(DataType.DateTime)]
        [DisplayName("PostTime")]
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
        public DateTime? PostTime { get; set; }

我的观点的一部分

    @using (Html.BeginForm())
{
    @Html.ValidationSummary(true)

    <fieldset>
    <legend>BlogPost</legend>

    <div class="editor-label">
    @Html.LabelFor(model => model.PostTitle)
    </div>
    <div class="editor-field">
    @Html.EditorFor(model => model.PostTitle)
    @Html.ValidationMessageFor(model => model.PostTitle)
    </div>

    <div class="editor-label">
    @Html.LabelFor(model => model.PostTime)
    </div>
    <div class="editor-field">
    <span class="datepicker">
    @Html.EditorFor(model => model.PostTime)
    @Html.ValidationMessageFor(model => model.PostTime)
    </span>
    </div>


    <p>
    <input type="submit" value="Create" />
    </p>
    </fieldset>
}

    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
        <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#PostTime").datepicker({
                    showOn: 'both',
                    buttonImage: "/content/img/calendar_icon.png"
                });
            });
        </script>

控制器

[HttpPost]
public ActionResult Create(BlogPost blogpost)
{
    if (ModelState.IsValid)
    {
        var db = new BlogPostContext();
        db.Add(blogpost);
        return RedirectToAction("Index");
    }
    return View(blogpost);
}

有人可以找到我想要的东西。

感谢。

1 个答案:

答案 0 :(得分:1)

至于收到错误消息称它不是有效日期,您需要指定日期选择器的格式:

        $(document).ready(function () {
            $("#PostTime").datepicker({
                showOn: 'both',
                dateFormat: 'dd/mm/yy',
                buttonImage: "/content/img/calendar_icon.png"
            });
        });