我正在使用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; }
}
有任何想法吗?
答案 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) {
// ...
}
}