2016-11-03 3 views
0

내가있어 이러한 모델 :ASP.Net MVC 게시 양식

public class FinalizedWebinarAttendeesList 
{ 
    public List<FinalizedWebinar> Webinars { get; set; } 
} 
public class FinalizedWebinar 
{ 
    public int ParticipantID { get; set; } 
    public bool AffidavitRecvd { get; set; } 
} 

지금, 나는 AffidavitRecvd 값에 대한 체크 박스를 설정하는 사용자를 볼 수있는 HTML 형태로이 데이터를 넣어 허용 할 및 각 참석자의 ParticipantID

내가 가진 양식은 아래 HTML에 표시된 표에 각 참석자가있는 패널 그룹의 아코디언입니다.

<div class="row"> 
    <form name="FinalizeWebinar" id="finalize-webinar-form" method="post" action="/Home/StoreFinalized"> 
     <div class="col-lg-12" id="attendeesTable"> 
      <div class="panel-group" id="accordion"> 
       <div class="panel panel-default"> 
        <div class="panel-heading"> 
         <h4 class="panel-title pull-left" style="width:90%"> 
          <a class="" data-toggle="collapse" data-parent="#accordion" href="#collapse0" aria-expanded="true">909428<br>Katie Perry</a> 
          <input type="hidden" name="[909428].ParticipantID" value="909428"> 
         </h4> 
         <div class="pull-right" style="width:10%;"> 
          <span class="affrcvd_chk">Affidavit Received?<br> 
           <input id="affrcvd_chk_box" type="checkbox" name="[0].AffidavitRecvd"> 
          </span> 
         </div> 
         <div class="clearfix"></div> 
        </div> <!--/.panel-heading --> 
        <div id="collapse0" class="panel-collapse collapse in" aria-expanded="true"> 
         <div class="panel-body"> 
          <div> 
           <input type="hidden" name="[0].FullName" value="Katie Perry"> 
           <div class="table-responsive"> 
            <table class="table table-bordered table-hover table-striped" id="attendee0Table"> 
             <thead> 
              <tr> 
               <th>Webinar</th> 
               <th>Time In Session</th> 
               <th>First Poll Count</th> 
               <th>Second Poll Count</th> 
               <th>Attended</th> 
              </tr> 
             </thead> 
             <tbody> 
              <tr class=""> 
               <td>Webinar 1: Wednesday</td> 
               <td>2 hrs 27 mins</td> 
               <td>4</td> 
               <td>4</td> 
               <td>YES</td> 
              </tr> 
              <tr class=""> 
               <td>Webinar 1: Thursday</td> 
               <td>2 hrs 4 mins</td> 
               <td>4</td> 
               <td>4</td> 
               <td>YES</td> 
              </tr> 
             </tbody> 
            </table> 
           </div> <!-- /.table-responsive --> 
          </div> 
         </div> <!--/.panel-body --> 
        </div> <!--/.panel-collapse --> 
       </div><!-- /.panel --> 
      </div> <!-- /.panel-group --> 
      <div class="panel-group" id="accordion"> 
       <div class="panel panel-default"> 
        <div class="panel-heading"> 
         <h4 class="panel-title pull-left" style="width:90%"> 
          <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse1">914251<br>Taylor Swift</a> 
          <input type="hidden" name="[914251].ParticipantID" value="914251"> 
         </h4> 
         <div class="pull-right" style="width:10%;"> 
          <span class="affrcvd_chk">Affidavit Received?<br> 
           <input id="affrcvd_chk_box" type="checkbox" name="[1].AffidavitRecvd"> 
          </span> 
         </div> 
         <div class="clearfix"></div> 
        </div> <!--/.panel-heading --> 
        <div id="collapse1" class="panel-collapse collapse"> 
         <div class="panel-body"> 
          <div> 
           <input type="hidden" name="[1].FullName" value="Taylor Swift"> 
           <div class="table-responsive"> 
            <table class="table table-bordered table-hover table-striped" id="attendee1Table"> 
             <thead> 
              <tr> 
               <th>Webinar</th> 
               <th>Time In Session</th> 
               <th>First Poll Count</th> 
               <th>Second Poll Count</th> 
               <th>Attended</th> 
              </tr> 
             </thead> 
             <tbody> 
              <tr class=""> 
               <td>Webinar 1: Wednesday</td> 
               <td>2 hrs 37 mins</td> 
               <td>4</td> 
               <td>4</td> 
               <td>YES</td> 
              </tr> 
              <tr class=""> 
               <td>Webinar 1: Thursday</td> 
               <td>2 hrs 11 mins</td> 
               <td>4</td> 
               <td>4</td> 
               <td>YES</td> 
              </tr> 
             </tbody> 
            </table> 
           </div><!-- /.table-responsive --> 
          </div> 
         </div><!--/.panel-body --> 
        </div><!--/.panel-collapse --> 
       </div><!-- /.panel --> 
      </div><!-- /.panel-group --> 
     </div> <!-- /.col-lg-12 --> 
    </form> 
</div><!-- /.row --> 

는 양식의 작업에서 함수에 대한 정의입니다 :

public ActionResult StoreFinalized(List<FinalizedWebinar> attendees) 

을하지만 게시 할 때, 참석자 매개 변수가 null이며,이는 POSTDATA에 전송되는 것입니다 :

[909428].ParticipantID:909428 
[909428].AffidavitRecvd:on 
[914251].ParticipantID:914251 
[914251].AffidavitRecvd:on 

public ActionResult StoreFinalized(FinalizedWebinarAttendeesList attendees) 
:

나는이 정의를 시도했다

이고 참석자 Webinars가 null입니다.

내가 뭘 잘못하고 있니?

답변

1

로보기 :

@using (Html.BeginForm("Index")) 
{ 
<input type="text" name="Webinars[0].ParticipantID" value="1" /> 
<input type="text" name="Webinars[0].AffidavitRecvd" value="11" /> 

<input type="text" name="Webinars[1].ParticipantID" value="2" /> 
<input type="text" name="Webinars[1].AffidavitRecvd" value="22" /> 

<input type="submit" value="submit" /> 
} 

컨트롤러 :

[HttpPost] 
public ActionResult Index(FinalizedWebinarAttendeesList form) 
{ 
    return View(); 
} 

당신이 설명한 것과 동일한 뷰 모델을 사용합니다.

+0

확인란의 값을 변경하고 AffidavitRecvd를 bool로 설정해야했지만이 방법이 효과적이었습니다. 감사. – MB34

+0

물론 입력 유형을 변경해야하지만, Viewodel에는 Integer 속성 만 있으므로 적절한 뷰를 제공합니다.) – yanislavgalyov

관련 문제