我在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>
任何想法?
谢谢是提前