从模型中删除无法正常工作

时间:2016-10-09 11:32:49

标签: asp.net-mvc dynamic model repeat

我在razor mvc中有一个重复的表,我的模型是一个数组

@model Models.Event[]

当我删除任何行时,每件事都可以,我在断点检查数据... 但视图无法正确呈现数据,并且始终删除最后一行。 在我的代码中,我想删除行索引2 ...我把它作为硬代码,在控制器和视图中传递真实数据,但最后,在视图(显示页面)中,最后一行被删除,行与索引2又出现了:(

我将我的模型从局部视图传递到主页面。

这是我的javascript代码:

<script type="text/javascript">
        $(document)
            .ready(function () {
                $("#EventsTbl")
                    .on("click", "tbody .btn-delrow",
                        function () {
                            var deletedrow = $(this).closest("tr");
                            var index = 2; // deletedrow.attr("data-ownum");
                            var data = $("#edit-Event-form").serialize();
                            deleteEvent(data, index);
                        });

                function deleteEvent(data,index) {
                    if (confirm("Do you want to delete product: " + index)) {
                        var postdata = data;
                        $.post('/Events/DeleteDetailRow', postdata,
                        function (response) {
                            $("#EventsTbl tbody").html(response);
                        });
                    }
                }
            });
    </script>

在控制器中我们有:

[HttpPost]
public ActionResult DeleteDetailRow(Event[] model)
{
     var list = new List<Event>(model);
     list.RemoveAt(2);
     return PartialView("AllDetailRows", list.ToArray());
 }

“list”删除后有真实数据,但我不知道问题出在哪里。在AllDetailRows模型也有真实的数据。

这是我的部分视图代码:(AllDetailRows)

@model Models.Event[]

@for (int i = 0; i < Model.Length; i++)
{
    <tr data-rownum="@i">
        <td class="input">
            @Html.EditorFor(model => model[i].EventExp,new {value=Model?[i]?.EventExp})
            @Html.ValidationMessageFor(model => model[i].EventExp, "", new { @class = "text-danger" })
        </td>
        <td>
            <button class="btn btn-sm btn-danger btn-delrow" type="button">
                <i class="fa fa-remove"></i>
            </button>
        </td>
    </tr>
}

这是我的主要观点:

@model Models.Event[]

@* This partial view defines form fields that will appear when creating and editing entities *@


<fieldset>
    <div>
        <table class="table table-bordered table-striped" id="AdverseEventsTbl">
            <thead>
                <tr>
                    <th class="text-center or-bold" style="width: 10%">@Html.LabelFor(model => model.First().EventExp)</th>
                    <th style="width: 5%">
                        <button class="btn btn-sm btn-success btn-addrow" type="button">
                            <i class="fa fa-plus-square"></i>
                        </button>
                    </th>
                </tr>
            </thead>
            <tbody>
                @Html.Partial("AllDetailRows", Model)
            </tbody>
        </table>
    </div>
</fieldset>

任何想法?

谢谢是提前

0 个答案:

没有答案
相关问题