MVC 5 HttpPost:更新表

时间:2015-08-26 10:23:30

标签: asp.net-mvc-5



@using (Html.BeginForm())
{
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.ID)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.PracticeExercise.Muscle)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.PracticeExercise.Execrcise)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.PracticeExercise.PlannedSets)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.PracticeExercise.PlannedRepeats)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.PracticeExercise.Pause)
            </th>


            <th colspan="5">
                Weights
            <th colspan="5">
                Repeats
            </th>

            <th></th>
        </tr>

        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.ID)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PracticeExercise.Muscle)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PracticeExercise.Execrcise)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PracticeExercise.PlannedSets)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PracticeExercise.PlannedRepeats)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PracticeExercise.Pause)
                </td>

                <td colspan="5">
                        @Html.EditorFor(modelItem => item.Weights1,
                            new { htmlAttributes = new { @class = "form-control" } })

                        @Html.EditorFor(modelItem => item.Weights2,
                            new { htmlAttributes = new { @class = "form-control" } })


                        @Html.EditorFor(modelItem => item.Weights3,
                            new { htmlAttributes = new { @class = "form-control" } })

                        @Html.EditorFor(modelItem => item.Weights4,
                            new { htmlAttributes = new { @class = "form-control" } })

                        @Html.EditorFor(modelItem => item.Weights5,
                            new { htmlAttributes = new { @class = "form-control" } })
                <td colspan="5">
                    <div class="form-group">
                        @Html.EditorFor(modelItem => item.Repeats1,
                            new { htmlAttributes = new { @class = "form-control" } })
                        @Html.EditorFor(modelItem => item.Repeats2,
                            new { htmlAttributes = new { @class = "form-control" } })                     
                        @Html.EditorFor(modelItem => item.Repeats3,
                            new { htmlAttributes = new { @class = "form-control" } })                      
                        @Html.EditorFor(modelItem => item.Repeats4,
                            new { htmlAttributes = new { @class = "form-control" } })
                        @Html.EditorFor(modelItem => item.Repeats5,
                            new { htmlAttributes = new { @class = "form-control" } }
                        
                    </div>
                </td>
                <td>
                    <div class="form-group">
                        <div class="col-md-offset-2 col-md-10">
                            <input type="submit" value="Save" class="btn btn-default" />
                        </div>
                    </div>
                </td>

            </tr>

        }

    </table>


    
}
&#13;
&#13;
&#13;

您好,

我用数据库中的Input创建了一个表。我对此页面的输入看起来像@model IEnumerable<HomePageProject.Models.Record>。正如您在代码中看到的,我将所有Record数据集插入到表中。 我需要帮助的是我想刷新数据库中的数据集。因此,我尝试了多种控制器方法,例如[HttpPost]public ActionResult Edit(Record record)[HttpPost]public ActionResult Edit(IEnumerable<HomePageProject.Models.Record> lstRecords)。 如果参数Record record存在返回的Record对象,但ID为0,而其他每个参数都包含值null

我的计划是实施功能&#34;保存整个记录列表&#34;并且&#34;保存单个记录&#34;。你能告诉我一个达到这个目标的方法吗?

非常感谢!

的Gr _

1 个答案:

答案 0 :(得分:0)

见评论:

您不能使用foreach循环为集合中的项生成控件。请参阅这个答案 - Stephen Muecke 2015年8月26日10:31

感谢您的链接! for-loop的提示非常好。但是现在我遇到了问题,每当我按下提交按钮时,它会捕获List中的第一个元素并将其提供给post控制器。 - GR_ 2015年8月27日14:47

如果您使用包含for循环和提交按钮的单一形式,它将回发整个集合,而不是一个。请注意,您不能两种方式 - 您不能保存单个记录和记录列表。 (虽然你可以有第二种形式来创建一个回复到不同控制器方法的新记录。 - Stephen Muecke 2015年8月27日23:22