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

时间:2014-06-19 09:01:09

标签: c# asp.net-mvc asp.net-mvc-4 post

我正在使用ASP.NET 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; }


}

有任何想法吗?

1 个答案:

答案 0 :(得分:0)

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

[更新]

单向输入:

@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>
}

并且您的父ViewModel包含数组

public class TheViewModel{

    public DeniedIntervalsViewModel[] Intervals{ get; set; }
}

public class TheController{

    public ActionResult Blah(DeniedIntervalsViewModel[] intervals) {
      // ...
    }
}
相关问题