MVC 5 нет частичных привязок данных - PullRequest
0 голосов
/ 12 марта 2019

Я надеюсь, что кто-то может указать мне правильное направление.

В настоящее время мы экспериментируем с частичными представлениями и ajax, и я столкнулся с чем-то, чего не могу понять.

Я повторно использую кнопку «AddOccupation» в _OccupationDetails.cshtml, чтобы повторно отправить форму после того, как она была «отредактирована» (наше редактирование / загрузка просто удаляет элемент из данных сеанса и возвращает значения «кнопкам занятия» просмотр для редактирования).

Кнопка «AddOccupationButton» прекрасно работает в изоляции, но после нажатия кнопки «EditOccupation» и возвращения представления, после внесения изменений в значения в полях, последующая кнопка «UpdateOccupation» (которая просто повторно представляет использование кнопки «AddOccupationButton»), по-видимому, не привязывает / не передает какие-либо значения в контроллер, кроме @HiddenFor в _occupationDetails.cshtml.

Есть идеи?

Дайте мне знать, если есть что-то еще, что может добавить некоторое понимание.

Спасибо!

_OccupationDetails.cshtml

@model Occupation

    @using (Ajax.BeginForm("AddOccupationButton", "People", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "occupation-table-container", OnSuccess = "AddSuccess", InsertionMode = InsertionMode.Replace }, new { id = "occupationEditAjaxForm" }))
    {    

        @Html.HiddenFor(model => model.ID)      

        Html.RenderPartial("_OccupationButtons");

       <div onclick="AddOccupationToList()" class="uk-form-row uk-width-1-1 uk-grid" style="margin-top: 15px;">            

                <input id="AddOccupationButton"  type="submit" value="Add Occupation"  />
            </div>
        </div>        

        <div id="UpdateOccupationButton">                       
                <button>Update Occupation</button>
            </div>

    }

<div id="occupation-table-container">
</div>

_OccupationButtons.cshtml



   @model Occupation

      <div id="occupation-buttons">
                @Html.AutocompleteFor(m => m.Job, "Autocomplete", "People", "occupationOptions")

    </div>

javascript


$(document).ready(function () {
            $("form#occupationEditAjaxForm").find(":submit").click();
        });




___________

Контроллер

 [HttpPost]
        public ActionResult AddOccupationButton([Bind (Include= "Job,EmployersBusiness,PartTime,EmploymentType")] Occupation occ)
        {
            if (Request.IsAjaxRequest())
            {

                //do stuff
                return PartialView("People/_OccupationTable", occ);

            }

        }



 public ActionResult LoadOccupation(string job)
        {

            if (Request.IsAjaxRequest())
            {

              //do stuff
               occ = itemToEdit;

                return PartialView("People/_OccupationButtons", occ);
            }

}
...