1

これが私の見解です:

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <div class="editor-label">
            @Html.LabelFor(model => model.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Title)
            @Html.ValidationMessageFor(model => model.Title)
        </div>

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

        <div class="editor-label">
            @Html.LabelFor(model => model.ExpireDate)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.ExpireDate)
            @Html.ValidationMessageFor(model => model.ExpireDate)
        </div>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

(基本的にはテンプレート ビュー)

投稿先の私のC#は次のとおりです。

[HttpPost]
public ActionResult Create(bulletin newBulletin)
{
    try
    {
        var db = Util.GetDb();
        var toAdd = new bulletin
            {
                title = newBulletin.title,
                description = newBulletin.description,
                expire_date = newBulletin.expire_date,
                timestamp = DateTime.Now,
                user_id = 1
            };
        db.bulletins.InsertOnSubmit(toAdd);
        db.SubmitChanges();
        return RedirectToAction("Index");
    }
    catch(Exception ex)
    {
        return View();
    }
}

タイトルと説明が入力されますが、expire_date テキスト ボックスに入力した日付に関係なく、次のように表示されます。

{1/01/0001 12:00:00 AM}

手がかりはありますか?

4

1 に答える 1

2

モデル バインダーが要求値を DateTime フィールドに解析しようとすると、現在のスレッド カルチャが使用されます。たとえば、<globalization>要素で特定のカルチャを設定した場合、テキスト ボックスに入力した日付文字列が正しい形式であることを確認する必要があります。

一方、web.config にグローバリゼーション要素がない場合、またはカルチャをauto(既定値) に設定している場合、現在のカルチャはクライアントによって決定されます。クライアント Web ブラウザーは、使用する値を含む Accept-Language 要求ヘッダーを送信します。この場合、ブラウザで設定されているものと同じ日付形式を使用する必要があります。

また、すべての日付を特定の形式にしたい場合は、使用するブラウザー設定に関係なくDisplayFormat、値を入札するときにビュー モデルの属性を使用するカスタム モデル バインダーを作成できます。このようなモデル バインダーの例を に示しましたthis post

于 2013-03-10T09:36:20.333 に答える