ASP.Net MVC - Ayudante lambdaexpression post acción
Pregunta
He creado este método auxiliar mediante un lambdaexpression que utiliza fuertemente el tipo de ayudante en una vista
Ayudante
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)
...
}
ver
<%= Html.LabelFor(model => model.DataNascita) %>
Controlador de
[HttpPost]
public ActionResult Edit(int id, Account MyAccount)
{
...
return View(...);
}
mi problema es que la MyAccount.DataNascita no se establece con el valor que seleccione en el formulario de Edición (fecha valor mínimo..ex.1900/01/01).
cómo se unen en una Edición posterior de la acción?
Solución
Creo que lo que está buscando es un ModelBinder personalizado que analizará los datos publicados entrantes y la convertirá en un DateTime para su modelo.
Otros consejos
En su opinión, usted dice que usted está saliendo de un Etiqueta por algo, pero su pregunta se refiere a ¿por qué el valor no se mantiene en la publicación de.
Creo que usted necesita, al menos, decir Html.EditorFor(...)
, pero lo más probable es que desee utilizar el método auxiliar escribió:
<%: Html.DateFor(model => model.DataNascita) %>
Sin embargo, es imposible decir exactamente lo que está pasando aquí sin saber el tipo de datos de la DataNascita
propiedad en el modelo.
Le sugiero que use jquery datepicker .
Puede personalizarlo con jquery themeroller .