Хорошо, все «функционально» работает с тем, что я пытаюсь выполнить, и еще раз, я уверен, что это что-то глупое, но я не могу понять, как это сделать.
У меня есть форма редактирования для объекта, скажем, машина. Эта «машина» может иметь 0 - много пассажиров. Итак, в моей форме редактирования у меня есть все поля для автомобиля, а затем в виде списка, показывающего каждого пассажира (частично). У меня также есть кнопка «Добавить нового пассажира», которая отображает новый частичный вид, позволяющий ввести пассажира. Здесь есть ссылка для отмены и кнопка добавления для отправки формы Ajax. Когда вы добавляете пассажира, он автоматически добавляется в список, но мне нужна форма ввода пассажира, чтобы уйти. Я попытался использовать функции onSuccess и onComplete, чтобы скрыть div, в котором находится форма, но оба отображают только частичные элементы HTML (белый экран, текст), а не частичный вид в контексте всей страницы.
Источники:
1) Основной вид редактирования
<script type="text/javascript">
Function hideForm(){
document.getElementById('newPassenger').style.display = 'none';
}
</script>
<h2>Edit</h2>
<%-- The following line works around an ASP.NET compiler warning --%>
<%= ""%>
<%Html.RenderPartial("EditCar", Model)%>
<h2>Passengers for this car</h2>
<%=Ajax.ActionLink("Add New Passenger", "AddPassenger", New With {.ID = Model.carID}, New AjaxOptions With {.UpdateTargetId = "newPassenger", .InsertionMode = InsertionMode.Replace})%>
<div id="newPassenger"></div>
<div id="passengerList">
<%Html.RenderPartial("passengerList", Model.Passengers)%>
</div>
<div>
<%= Html.ActionLink("Back to List", "Index") %>
</div>
2) AddPassenger View. Ссылка отмены ниже - это действие, которое ничего не возвращает, удаляя информацию в div.
<% Using Ajax.BeginForm("AddPassengerToCar", New With {.id = ViewData("carID")}, New AjaxOptions With {.OnSuccess = "hideForm()", .UpdateTargetId = "passengerList", .InsertionMode = InsertionMode.Replace})%>
<%=Html.DropDownList("Passengers")%>
<input type="submit" value="Add" />
<%=Ajax.ActionLink("Cancel", "CancelAddControl", _
New AjaxOptions With {.UpdateTargetId = "newPassenger", .InsertionMode = InsertionMode.Replace})%><% end using %>