我的观点有客人名单(我得到了整个清单),在他们到达时,我必须将他们标记为已抵达。 我等待30分钟,然后点击提交按钮将所有详细信息提交给服务器。
我将提交,访客ID和到达状态到服务器
我不知道如何将最后一个活动的访客从View传递到服务器。
我的控制器
[HttpPost]
public ActionResult GuestList(GuestListForModel collection)
{
var temp = collection;
return View();
}
MyView的
@using (Html.BeginForm("GuestList", "Guest"))
{
@foreach (var saiList in Model.GuestArrivalInfoList)
{
<li class="group">
<div class="IB left">
<img src="images/user-1.png" alt="" class="stdImg rds50" width="100" height="100" />
</div>
<div class="left brRgt nameAge">
<div class="group">
<a href="#">@saiList.FirstName @saiList.LastName</a>
<div class="age">@saiList.Age<span class="font9">yrs</span></div>
</div>
</div>
<footer class="group">
<div class="sheet brRgt left">
<span class="font9 dblock">present</span>
<div>@Model.Present</div>
</div>
<div class="sheet brRgt left">
<span class="font9 dblock">@Model.Absent</span>
<div>1</div>
</div>
<div class="sheet brRgt left">
<span class="font9 dblock">Model.NoAttendance</span>
<div>1</div>
</div>
<input type="submit" value="Save" id="Save" />
</footer>
型号
public class GuestListForModel
{
public bool Status {get;set;} // arrived or not arrived.
public Int GuestID {get;set;}
}
P.S:我无法通过谷歌搜索获得满意的答案。
先谢谢
答案 0 :(得分:0)
您需要进行两项更改:
更改GuestList操作以接受集合:
[HttpPost]
public ActionResult GuestList(ICollection<GuestListForModel> collection)
{
var temp = collection;
//do your processing
return View();
}
使用for循环呈现访客列表
@for(var i = 0; i < Model.GuestArrivalInfoList.Count; i++)
{
@Html.TextBoxFor(m => Model.GuestArrivalInfoList[i].GuestID)
}
Razor / ASP.NET将负责在呈现时在视图模型中设置正确的id(例如GuestID
的ID为&#34; GuestArrivalInfoList[1].GuestID
&#34;),并且还会在命中动作时处理模型绑定,确保将字段集合映射到集合中。
我认为您的视图模型和GuestListForModel中缺少/其他详细信息可确保您来回传输正确的数据(例如,我不会在视图中看到GuestID)。