2014-04-06 2 views
0

В My View есть список гостей (у меня есть полный список), и по прибытии я должен отметить их как прибывших. Я жду 30 минут и отправлю все детали серверам, нажав кнопку отправки.MVC 4: Прохождение информации о выбранных вами гостях Вид для диспетчера

я представлю, гостевой ID и прибыл статус сервера

Я знаю, как выигрыш пройти последний из активных гостей с видом на сервер.

Мой контроллер

[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: Я мог бы не получите удовлетворительного ответа от googling.

Заранее спасибо

ответ

0

Там находятся два изменения, которые вам нужно будет сделать:

Изменить действие гест принять коллекцию:

[HttpPost] 
public ActionResult GuestList(ICollection<GuestListForModel> collection) 
{ 
    var temp = collection; 

    //do your processing  

    return View(); 
} 

Используйте цикл для визуализации гостя лист

@for(var i = 0; i < Model.GuestArrivalInfoList.Count; i++) 
{ 
    @Html.TextBoxFor(m => Model.GuestArrivalInfoList[i].GuestID) 
} 

Razor/ASP.NET позаботится об установке корра ect id в модели представления при визуализации (например, GuestID будет иметь идентификатор «GuestArrivalInfoList[1].GuestID»), а также будет обрабатывать привязку модели при ударе по действию, следя за тем, чтобы коллекция полей была отображена в коллекцию.

Я предполагаю, что в вашей модели просмотра и GuestListForModel отсутствуют/дополнительные данные, гарантирующие, что у вас есть правильные данные, идущие туда и обратно (например, я не вижу гостевой идентификатор в представлении).