ASP.Net MVC - помощник лямбда-выражений после действия - PullRequest
0 голосов
/ 28 марта 2011

Я создал этот вспомогательный метод с использованием лямбда-выражения, чтобы использовать строго тип помощника в представлении

Помощник


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

как связать егов действии Изменить сообщение?

Ответы [ 3 ]

1 голос
/ 28 марта 2011

Я думаю, что вам нужен специальный ModelBinder, который будет анализировать входящие опубликованные данные и преобразовывать их в DateTime для вашей модели.

1 голос
/ 28 марта 2011

Я предлагаю вам использовать Jquery Datepicker .

Вы можете настроить его с помощью Jquery Themeroller .

1 голос
/ 28 марта 2011

С вашей точки зрения, вы говорите, что вы выводите метку для чего-то, но ваш вопрос касается того, почему значение не сохраняется отправка .

Я думаю, что вам нужно, по крайней мере, сказать Html.EditorFor(...), но вы, вероятно, хотите использовать вспомогательный метод, который вы написали:

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

Однако невозможно точно сказать, что здесь происходит, не знаятип данных свойства DataNascita в модели.

...