-1

ビューで強い型ヘルパーを使用するために、ラムダ式を使用してこのヘルパーメソッドを作成しました

ヘルパー


        public static string DateFor<TModel, TDate>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TDate>> expression)
        {
            ModelMetadata data = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
            StringBuilder sb = new StringBuilder();
            ...
            //code that creates three dropdownlist (day, month and year)
            ...
        }

見る


        <%= Html.LabelFor(model => model.DataNascita) %>

コントローラ


        [HttpPost]
        public ActionResult Edit(int id, Account MyAccount)
        {
            ...
            return View(...);
        }

私の問題は、MyAccount.DataNascitaが、編集フォームで選択した値(日付の最小値..例:1900/01/01)で設定されていないことです。

投稿の編集アクションでバインドする方法は?

4

3 に答える 3

1

あなたの見解では、あなたは何かのラベルを出力していると言いますが、あなたの質問は、なぜ値が投稿され続けないのかに関するものです。

少なくとも言う必要があると思いますが、Html.EditorFor(...)おそらくあなたが書いたヘルパーメソッドを使用したいと思うでしょう:

<%: Html.DateFor(model => model.DataNascita) %>

ただし、DataNascitaモデルのプロパティのデータ型を知らなければ、ここで何が起こっているのかを正確に言うことはできません。

于 2011-03-28T00:36:22.567 に答える
1

あなたが求めているのは、投稿された受信データを解析し、それをモデルのDateTimeに変換するカスタムModelBinderだと思います。

于 2011-03-28T14:41:50.013 に答える
1

JqueryDatepickerを使用することをお勧めします。

JqueryThemerollerを使用してカスタマイズできます。

于 2011-03-28T14:49:06.703 に答える