0

デートピッカーの配線に関する問題

部分表示のコード

@model System.DateTime
@Html.TextBox("", Model.ToString("dd/MM/yy"), new { @class = "date" })

ビューのコード

 @Html.TextBox("DateTime", (Model.AdvertStartDate.ToString()), new { @class = "date" })

スクリプト

 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

日付ピッカーに使用されるコード

<script type="text/javascript">
    $(document).ready(function () {
        $('.date').datepicker
        ({
            dateFormat: 'dd/mm/yy',
            showStatus: true,
            showWeeks: true,
            currentText: 'Now',
            autoSize: true,
            gotoCurrent: true,
            showAnim: 'blind',
            highlightWeek: true

        });
    });
</script>

モデルのコード

 [Required]
   public DateTime AdvertStartDate { get; set; }

日付はテキストボックスに挿入されていますが、データベースでは更新されていません

足りないものを提案できますか?

4

2 に答える 2

1

<input>によってレンダリングされるHTML要素TextBox("DateTime",...)には正しい名前 (名前は "DateTime" になります) がないためAdvertStartDate、データがサーバーにポストされたときにモデル プロパティに正しくバインドされないと思います。

あなたの「部分的なビュー」は、私には EditorTemplate のように見えます。この場合、ビューでこれを使用できるはずです:

@Html.EditorFor(model => model.AdvertStartDate)

AdvertStartDateタイプであるためDateTime、DatePicker を含む EditorTemplate を使用して入力要素をレンダリングする必要があります。

EditorTemplate ファイルに別の名前が付いている場合はDateTime.cshtmlAnotherTemplateName.cshtmlテンプレートを明示的に指定できます。

@Html.EditorFor(model => model.AdvertStartDate, "AnotherTemplateName")
于 2012-04-09T12:18:58.090 に答える
0

Datapicker は、MVC アプリケーションに実装するのが簡単な要素ではありません。

次のことを検討してみてください。

  1. データ ピッカーからのデータがサーバーに送信されていることを確認します (データ ピッカーには適切な名前が必要です)。
  2. datapicker のデータ形式がアプリケーションのデータ形式と同じであることを確認してください (選択したカルチャによって異なる場合があります)。この場合、データはサーバーに送信されますが、31.01 は月 31、日付 1 として変換されるため、常に有効とは限りません。
于 2012-04-09T15:37:46.990 に答える