我有一个只是
的视图模型public class Visits
{
public List<Visit> visits { get; set; }
}
在我的访问模型中,我有一个
public bool ValidVisit { get; set; }
我可以将所有内容传递给我的视图,并在视图上呈现所有访问。视图看起来像
@model TheWallSite.ObjectModels.Visits
@{
ViewBag.Title = "Potential invalid visits!";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
<fieldset>
<table>
<tr><th>Check In/Out Time</th><th>Visit Type</th><th>In/Out</th><th>IP</th><th>SSO ID</th><th>Valid Visit</th></tr>
@foreach (var item in Model.visits)
{
<tr>
<td>@Html.DisplayFor(model => item.InOutTime)</td>
<td>@Html.DisplayFor(model => item.VisitType)</td>
<td>@Html.DisplayFor(model => item.VisitName)</td>
<td>@Html.DisplayFor(model => item.IP)</td>
<td>@Html.DisplayFor(model => item.SSO)</td>
<td>@Html.EditorFor(model => item.ValidVisit)</td>
</tr>
}
</table>
<input type="submit" value="Submit" />
</fieldset>
}
我遇到的问题是我希望最终用户能够检查/取消选中ValidVisit然后将它们传回控制器并在我的数据库中进行正确的更改..我有一点时间计算如何做到这一点。有什么建议?我的[HttpPost]控制器签名是
public ActionResult ListQuestionableVisits(Visits model, FormCollection forms)
但似乎没有任何东西回到控制器。
答案 0 :(得分:2)
这可能是模型绑定没有踢,可能是由于循环。
我知道我知道,它应该工作,但是以正确的方式做,并且它有更好的工作机会。
尝试使用编辑器模板。
<强> /EditorTemplates/Visit.cshtml 强>
@model TheWallSite.ObjectModels.Visit
<tr><td>@Html.DisplayFor(model => model.InOutTime)</td></tr>
<tr><td>@Html.DisplayFor(model => model.VisitType)</td></tr>
<tr><td>@Html.DisplayFor(model => model.VisitName)</td></tr>
<tr><td>@Html.DisplayFor(model => model.IP)</td></tr>
<tr><td>@Html.DisplayFor(model => model.SSO)</td></tr>
<tr><td>@Html.EditorFor(model => model.ValidVisit)</td></tr>
主要观点:
@model TheWallSite.ObjectModels.Visits
@{
ViewBag.Title = "Potential invalid visits!";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
<fieldset>
<table>
<tr>
<th>Check In/Out Time</th>
<th>Visit Type</th>
<th>In/Out</th>
<th>IP</th>
<th>SSO ID</th>
<th>Valid Visit</th>
</tr>
@Html.EditorFor(model => model.Visits)
</table>
<input type="submit" value="Submit" />
</fieldset>
}
此外,如果那是你的完整视图,你不需要动作中的FormCollection
参数,除非有一个隐藏的字段/其他一些我没看到的魔法字段。