Я надеюсь, что кто-то может указать мне правильное направление.
В настоящее время мы экспериментируем с частичными представлениями и 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);
}
}