質問

ムラで強い型ヘルパーを使用するために、LambdaExpressionを使用してこのヘルパー法を作成しました。

ヘルパー


        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)
            ...
        }
.

VIEW


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

コントローラ


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

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

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

役に立ちましたか?

解決

後であなたが何であるかは、着信転記データを解析してモデルのDateTimeに変換するカスタムモデルバインダーです。

他のヒント

あなたの見解では、あなたが何かのためにラベルを出力していると言いますが、あなたの質問は、値が posting に保持されていない理由に関する懸念です。

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

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

しかし、モデル上のDataNascitaプロパティのデータ型を知らずにここで何が起こっているのか正確に言うことは不可能です。

私はあなたが使用することをお勧めします jQuery DatePicker

jQuery Themeroller でカスタマイズできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top