Пример вывода при отправке кнопки,
Не знаюзнаю, почему у меня есть нулевое значение, вот мой образец формы.подробности из него - частичное представление
Код частичного просмотра
@model SimplyAccounting.Models.TransactionViewModels.JournalDetailsViewModel
@using (Html.BeginCollectionItem("JournalDetailsViewModel"))
{
<tr class="checkDetails" id="@Model.Guid">
<td>
//code here
<td>
<tr class="DocumentDetails" id="@Model.Guid">
<div class="btn-group btn-group-toggle">
<button type="button" class="btn btn-sm btn-info btnModal" guid="@Model.Guid"><i class="far fa-file"></i></button>
<button type="button" class="btn btn-sm btn-danger" id="delete" name="delete" value="delete" onclick="javascript: deleteBook(document.getElementById('@Model.Guid'))"><i class="far fa-trash-alt"></i></button>
</div>
</td>
</tr>
}
Замечу, нулевое значение будет отображаться, еслиЯ добавил новую строку и удалил ее.Если я добавлю еще 2 строки и удалю 2 строки, 2 пустых значения также покажут
Код при добавлении строки
function GetRow() {
var form = $('form');
var urlStr = '@Url.Action("CreateJournalDetails", "Journals")';
$.ajax({
url: urlStr,
success: function (data) {
$('#journalRow').append('<tr>' + data + '</tr>');
$('tbody#journalRow>tr.checkDetails').appendTo('#checkRow');
form.data('validator', null);
$.validator.unobtrusive.parse(form);
}
});
}
Код для удаления строки:
function deleteBook(bookDiv) {
var id = $(bookDiv).attr("id");
var cnt = document.getElementsByClassName("DocumentDetails").length;
if (cnt > 2) {
bookDiv.remove();
document.getElementById(id).remove();
}
}
Контроллер:
public IActionResult CreateJournalDetails(JournalDetailsViewModel vmodel)
{
vmodel = new JournalDetailsViewModel();
vmodel.Gla_List = GlaList();
vmodel.Function_List = FunctionList();
vmodel.Expense_List = ExpenseList();
vmodel.Bank_List = BankList();
vmodel.Location_List = LocationList();
vmodel.Branch_List = BranchList();
vmodel.Asset_List = AssetList();
vmodel.Item_List = ItemList();
return PartialView("_JournalDetails", vmodel);
}