多个控制器映射到单个字段

时间:2011-02-10 13:05:26

标签: asp.net-mvc-3

我有一个简单的网络表单,数据存储在数据库中。问题我尝试将DateTime字段拆分为两个控制器。

- 日期YYYY / MM / DD的一个TextBoxFor

- 一个TextBoxFor for the Hours

- 分钟的一个TextBoxFor

第一个控制器成功地将日期保存到数据库中,没有时间(小时和分钟),但其他两个控制器不会将任何内容保存到数据库中。

感谢任何帮助。

        <div class= "editor-field">
        @Html.TextBoxFor(model => model.deliveryDate)
        @Html.ValidationMessageFor(model => model.deliveryDate)
    </div>

    <div class="editor-label">
        Tid
    </div>
    <div class= "editor-field">
        @Html.TextBoxFor(model => model.deliveryDate.Hour)
        @Html.TextBoxFor(model => model.deliveryDate.Minute)

    </div>

1 个答案:

答案 0 :(得分:0)

我认为DateTime的时间和分钟是只读的。 因此,当您尝试设置它们时,它将失败。

解决这个问题的一个非常简单的方法是在模型上显示要显示的表示属性。例如 model.Hour model.Minute

设置完这些后,您可以更新model.deliveryDate的小时和分钟。

作为预防措施,我还会为deliveryDate创建一个显示属性,因为当你设置它时,你将失去时间。

总体上最好的解决方案是获得良好的DateTime控件。我认为MVC的盒子中有一个(不确定它有多好)。 尝试其中之一:

http://trentrichardson.com/examples/timepicker/

或单独的 http://haineault.com/media/jquery/ui-timepickr/page/ 并查看JqueryUI