不知道有人能指点我正确的方向吗?通过'列表'模型进出视图
基本上我正在尝试创建一个页面,允许某人输入数据(高尔夫)的数量(18)的洞,基本上我不确定它是如何完成的。
在我已经创建了以下模型:
namespace BGSociety.Models
{
public class CreateCourseHolesViewModel
{
public int holeNumber { get; set; }
public int par { get; set; }
public int si { get; set; }
public int distance { get; set; }
}
}
在控制器我已经得到的指数事件:
TempData的[ “孔”] = getHoles();
protected List<CreateCourseHolesViewModel> getHoles()
{
var holes = new List<CreateCourseHolesViewModel>();
for (int i =1; i < 19; i++)
{
holes.Add(new CreateCourseHolesViewModel { holeNumber = i });
}
return holes;
}
而我穿入视图此:
返回PartialView( “CreateCourseHoles”,TempData的[ “孔”]);
在视图中,我可以遍历列表并显示整个数字,每个数字旁边都有一个文本框,以允许输入par,si和distance。
var zHoles = TempData["holes"] as IEnumerable<BGSociety.Models.CreateCourseHolesViewModel>;
foreach (var hole in zHoles)
{
<div class="row">
<div class="col-sm-1">
<p>@hole.holeNumber</p>
</div>
<div class="col-sm-6">
<div class="form-group">
<div class="col-xs-12">
@Html.ValidationMessageFor(m => hole.par)
@Html.TextBox("par", TempData["par"], new { @class = "form-control", placeholder = "Par", name = "Par" })
</div>
</div>
</div>
</div>
}
但我不能工作,如何回传给这个人口稠密的列表控制器为我的数据输入到数据库中。
我错过了一个很好的机会(!),但如果有人可以腾出几分钟的时间来提供帮助,那将是非常棒的!
感谢, SX
首先,你不能使用一个'foreach'循环来生成收集项目的表单控件(参考[这个答案](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)) )。但是你做的其他事情没有任何意义。并且不要使用'TempData',在你获得方法的时候,你初始化你的集合并将它传递给视图。 –