Вызов Ajax MVC неправильно заполняет строку "BeginCollectionItem"

У меня есть PartialView, который работает правильно, когда вызывается так:

<div id="EmailAddresses">

    @foreach (FormEmailMessageEmailAddress toRecipient in Model.ToRecipients)
    {
        @Html.Partial("~/Views/FormEmailMessageEmailAddresses/_Edit.cshtml", toRecipient)    
    }

</div>

В следующем разделе кода у меня есть вызов Ajax, который возвращает модель и добавляет ее в DOM:

<div class="form-group">
    <div class="col-md-10" style="float: right;">
        @Ajax.ActionLink(
                "Add",
                "AddNewEmailAddress",
                null,
                new { id = Model.Oid },
                new AjaxOptions
                {
                    HttpMethod = "GET",
                    InsertionMode = InsertionMode.InsertAfter,
                    UpdateTargetId = "EmailAddresses",
                },
                new { style = "btn btn-info" }
            )
    </div>
</div>

"~ / Views / FormEmailMessageEmailAddresses / _Edit.cshtml" выглядит в основном так:

@model x.Models.Forms.Actions.FormEmailMessageEmailAddress

@using (Html.BeginCollectionItem(ViewData.TemplateInfo.HtmlFieldPrefix + ".ToRecipients"))
{
    @* Bunch of omitted code *@
}

Когда PartialView заполняется из записей базы данных, строка Html.BeginCollectionItem выглядит примерно так: EmailMessages[997a1db6-6205-4118-90e4-11013d8d33db].ToRecipients[780bd8fa-4121-4d45-8fbc-35f4b8fd3086]однако при вызове из функции Ajax выглядит .ToRecipients[222a5fa2-70d6-4cac-afbc-e865b0a753be],

Поскольку префикс отсутствует, контроллер не видит новую коллекцию.

HtmlFieldPrefix У меня нет информации при использовании Ajax-вызова или чего-то другого, что у меня неверно, пожалуйста, дайте мне знать ваши мысли, указывающие мне на решение.

0 ответов

Другие вопросы по тегам