0

MVC3とjQueryプラグインのdatepickerを使用します。

カレンダーが見え、フィールドに日付を設定できます。しかし、モデルをコントローラーにポストバックすると、プロパティの値が常にnullになります。そして、その特定の日付を無効な日付として表示しています。

これが私のモデルです。

[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 に答える