Pergunta

Eu criei este método auxiliar usando uma expressão lambda para usar um auxiliar de tipo forte em uma visualização

Ajudante


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

visualizar


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

Controlador


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

meu problema é que MyAccount.DataNascita não está definido com o valor que escolhi no formulário Editar (valor mínimo da data..ex.1900/01/01).

como vinculá-lo em uma ação Editar postagem?

Foi útil?

Solução

Acho que o que você procura é um ModelBinder personalizado que analisará os dados postados recebidos e os converterá em um DateTime para o seu modelo.

Outras dicas

Na sua opinião, você diz que está produzindo um Rótulo para alguma coisa, mas sua pergunta é por que o valor não é mantido postagem.

Eu acho que você precisa, pelo menos, dizer Html.EditorFor(...), mas você provavelmente deseja usar o método auxiliar que escreveu:

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

No entanto, é impossível dizer exatamente o que está acontecendo aqui sem conhecer o tipo de dados do DataNascita propriedade no modelo.

Eu sugiro que você use Selecionador de data Jquery.

Você pode personalizá-lo com Jquery Themeroller.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top