我是MVC和JavaScript的新手,所以請原諒我的基本問題。我正在編寫一個顯示多行數據的視圖,並在每行的末尾顯示一個「刪除」按鈕。點擊後,該按鈕將運行一些使用.remove()刪除行的JavaScript。使用Javascript動態地從html表中刪除行
當我單擊刪除按鈕時,該行被刪除,但是當我返回到控制器時,被刪除的行下面的任何行都不會傳回控制器,並且計數小於我刪除的行。例如,如果我有6行並刪除第4行,當我提交回控制器時,計數爲3,行5和行6丟失。不知道爲什麼。以下是我的視圖和控制器。
任何幫助將不勝感激。
查看
@using (Html.BeginForm("Edit", "Contacts", FormMethod.Post))
{
<table>
<tr>
<th><label>Last Name</label></th>
<th><label>First Name</label></th>
.... // more table headings
<th></th>
</tr>
@if (Model != null && Model.Count > 0)
{
int j = 0;
foreach (var i in Model)
{
<tr>
<td>
@Html.TextBoxFor(a => a[j].LASTNAME)
@Html.HiddenFor(a => a[j].DOB_NBR)
@Html.ValidationMessageFor(a => a[j].LASTNAME)
</td>
<td>
@Html.TextBoxFor(a => a[j].FIRSTNAME)
@Html.ValidationMessageFor(a => a[j].FIRSTNAME)
</td>
.... // more controls
<td><button type="button" id="btnDelete" class="deleteContact btn btn btn-danger btn-xs">Remove</button></td>
</tr>
j++;
}
}
</table>
<input type="button" class="add-button btn btn-default" name="add" value="Add" />
<input type="submit" name="submitAction" value="Submit" class="btn btn-primary" onclick="return confirm('Please double check all information before submitting. Submit Notification?')" />
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript">
$(document).on("click", ".deleteContact", function() {
$(this).closest("tr").remove();
});
</script>
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(string submitAction, List<ENTITY_CONTACTS> entity_Contacts)
{
// entity_Contacts is not bound with all items in the collection
}
感謝您的回覆,我正在尋找。我開始使用.hide()創建刪除,但是您的回覆非常容易。我還有一個額外的問題。以下是我的添加功能。如何爲索引分配一個新值? – JBroz
如果你有一個新的問題,那麼你需要問一個新的問題,但在你做之前,我建議你看看答案[這裏](http://stackoverflow.com/questions/29161481/post-a-form -array-without-successful/29161796#29161796)and [here](http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308# 28081308)瞭解如何動態地添加和刪除收集項目 - 我只是注意到我已經在我的答案中有這些鏈接:) –
不僅如此,但我只是意識到我給了你[上一個問題](http: //stackoverflow.com/questions/35919506/dynamically-adding-rows-to-an-html-table-using-javascript)以及我指出你接受的答案不會解決你的問題 –