繁体   English   中英

ASP.Net MVC发布表单

[英]ASP.Net MVC Posting Form

我有这些模型:

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

现在,我要将这些数据放入HTML表单中进行查看,并允许用户为每个与会者设置AffidavitRecvd值和ParticipantID的复选框。

我的表格是面板组中的一个手风琴,下表中的表格显示了每个出席者。

<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)

和与会者。网络研讨会为空。

我在这里做错了什么?

您的看法:

@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();
}

使用与您描述的视图模型相同的视图模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM