我使用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属性的数据类型的情况下准确地说出来的情况。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top