ASP.NET MVC4 -在多个文本框中添加多个

本文关键字:添加 文本 NET ASP MVC4 | 更新日期: 2023-09-27 18:09:12

我正在与ASP合作。净MVC4。我想通过显示具有多个文本框的视图来提供添加多个记录(从1到3最大)的可能性,这些文本框最终表示相同的东西。

例如,在我的视图中,我希望有这样的东西:

起始时间(1):|TextBoxForHours| h |TextBoxForMinutes|

开始时间(2):|TextBoxForHours| h |TextBoxForMinutes|

开始时间(3):|TextBoxForHours| h |TextBoxForMinutes|

在我的控制器中,我将检查有多少个文本框已经填充,并将其保存在我的数据库中。

下面是我创建的ViewModel:

public class DeniedIntervalsViewModel
{
    public int StartHour { get; set; }
    public int StartMinute { get; set; }

}

有什么办法吗?

ASP.NET MVC4 -在多个文本框中添加多个

你可以像这样使用数组、列表、集合或字典的输入命名约定

(更新)

单行的输入:

@for (int i = 0; i < Model.Count; i++)
{
    <div>
        <label>Start hour :</label>
        <input type="text" name="intervals[@i].StartHour " value="" />
        <input type="text" name="intervals[@i].StartMinute " value="" />
    </div>
}

将ViewModel绑定回View:

@for (int i = 0; i < Model.Count; i++)
{
    <div>
        <label>Start hour :</label>
        @Html.TextBoxFor(model => model.Intervals[i].FirstName)
        @Html.TextBoxFor(model => model.Intervals[i].LastName)
    </div>
}

和你的父视图模型包含数组

public class TheViewModel{
    public DeniedIntervalsViewModel[] Intervals{ get; set; }
}
public class TheController{
    public ActionResult Blah(DeniedIntervalsViewModel[] intervals) {
      // ...
    }
}