ASP.NET MVC - 助手LambdaExpression后动作
题
我使用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)
...
}
.
查看
<%= Html.LabelFor(model => model.DataNascita) %>
.
控制器
[HttpPost]
public ActionResult Edit(int id, Account MyAccount)
{
...
return View(...);
}
.
我的问题是MyAccount.Datanascita未设置我在编辑表单中选择的值(日期的值Minimun ..前。1900/01/01)。
如何将其绑定在编辑后动作中?
解决方案
我想你是一个追求的是一个自定义的modelbinder,它将解析传入的发布数据并将其转换为模型的DateTime。
其他提示
在您的视图中,您可以说您正在输出 label 的东西,但您的问题涉及为什么该值未保持在发布。
我认为你需要,至少说,这是Html.EditorFor(...)
,但你可能想要使用你写的帮助方法:
.
但是,不可能在不知道模型上的<%: Html.DateFor(model => model.DataNascita) %>
DataNascita
属性的数据类型的情况下准确地说出来的情况。
我建议你使用 jquery datepicker
不隶属于 StackOverflow