ASP Net Core MVC模型详细信息未验证并将值传递给控制器

时间:2018-10-11 07:06:40

标签: asp.net asp.net-core asp.net-core-mvc partial-views asp.net-mvc-partialview

在控制器的alias <command>='<path_to_command>'方法中,我无法成功验证并传递模型的详细信息。但是,当我添加新行时,它将验证并将其值传递给控制器​​。

以下是示例输出:

enter image description here

两条记录都没有通过和验证,但是当我添加新行时,新行中的记录将通过验证并通过

enter image description here

这是我获取现有详细信息的代码

Edit

var form = $('form'); $.ajax({ url: '/Journals/EditJournalDetails', data: { id: @Model.Id }, success: function (data) { $('#journalRow').append('<tr>' + data + '</tr>'); $('tbody#journalRow>tr.checkDetails').appendTo('#checkRow'); form.data('validator', null); $.validator.unobtrusive.parse(form); } });

的代码
EditJournalDetails

控制器代码:

    @model IEnumerable<SimplyAccounting.Models.TransactionViewModels.JournalDetailsViewModel>
@using (Html.BeginCollectionItem("JournalDetailsViewModel"))
{
    @foreach (var item in Model)
    {
//row values here
}
}

添加行代码JS:

    public async Task<IActionResult> EditJournalDetails(int? id)
        {
            var journaldetails = await _context.JournalDetails.Where(m => m.JournalId == id).ToListAsync();
            var jdvmodel = _mapper.Map<List<JournalDetailsViewModel>>(journaldetails);
            foreach(var item in jdvmodel)
            {
                //retrieve data here
}
            return PartialView("_EditJournalDetails", jdvmodel);
        }

function GetRow() { var form = $('form'); $.ajax({ url: '/Journals/CreateJournalDetails', success: function (data) { $('#journalRow').append('<tr>' + data + '</tr>'); $('tbody#journalRow>tr.checkDetails').appendTo('#checkRow'); form.data('validator', null); $.validator.unobtrusive.parse(form); } }); } 部分视图代码:

CreateJournalDetails

控制器代码:

 @model SimplyAccounting.Models.TransactionViewModels.JournalDetailsViewModel
@using (Html.BeginCollectionItem("JournalDetailsViewModel"))
{
//row codes here
}

1 个答案:

答案 0 :(得分:0)

使用此代码解决问题

查看

<tbody id="journalRow">
                                        @foreach(var item in Model.JournalDetailsViewModel)
                                        {
                                            @Html.Partial("_JournalDetails", item)
                                        }
                                    </tbody>

PartialView

  @model SimplyAccounting.Models.TransactionViewModels.JournalDetailsViewModel
@using (Html.BeginCollectionItem("JournalDetailsViewModel"))
{
    <tr class="checkDetails" id="@Model.Guid">
        <td>
}
}