Domanda

Ho creato questo metodo Alper utilizzando una Lambdaexpression per utilizzare fortemente il tipo di helper in una vista

helper


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

Visualizza


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

Controller


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

Il mio problema è che MyAccount.danascita non è impostato con il valore che scelgo nel modulo di modifica (valore della data minimo .. ex 1900/01/01).

Come legarlo in un'azione di modifica post?

È stato utile?

Soluzione

Penso che cosa stai cercando è un modello di modellismo personalizzato che analizzerà i dati pubblicati in entrata e lo converteranno in un datetime per il tuo modello.

Altri suggerimenti

In tua vista, tu dici che stai emettendo un'etichetta per qualcosa, ma la tua domanda riguarda il motivo per cui il valore non viene mantenuto su pubblicazione .

Penso che tu abbia bisogno di, almeno, dire Html.EditorFor(...), ma probabilmente vuoi usare il metodo helper che hai scritto:

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

Tuttavia, è impossibile dire esattamente cosa sta succedendo qui senza conoscere il tipo di dati della proprietà DataNascita sul modello.

Ti suggerisco di usare jquery datepicker .

Puoi personalizzarlo con jquery theeroller .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top