0

使用 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);
}

可以有人我想念的东西。

谢谢。

4

1 回答 1

1

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

        $(document).ready(function () {
            $("#PostTime").datepicker({
                showOn: 'both',
                dateFormat: 'dd/mm/yy',
                buttonImage: "/content/img/calendar_icon.png"
            });
        });
于 2012-11-15T04:08:12.760 回答