Возвращение Ajax для замены всей страницы - PullRequest
1 голос
/ 22 июня 2010

Это вопрос к вопросу, который я отправил на прошлой неделе "Ajax.ActionLink not Posting" .Я наконец-то получил его в Post, и он правильно вызывает моё действие Delete и удаляет запись.Метод Delete возвращает RedirectToAction («Список»), чтобы новый набор данных за вычетом удаленной записи был повторно внесен в список.За исключением того, что на самом деле происходит - НИЧЕГО.Список не меняется.И я почти уверен, что знаю почему: вызов Ajax.ActionLink возвращает результат Ajax, который должен заменить только обозначенный элемент (параметр опции UpdateTargetId) в документе.И так как я не обозначил ни одного, это ничего не заменяет, даже если это целая свежая страница.

Мой вопрос: что я передам AjaxOption.UpdateTargetId, чтобы заставить его стирать всюстраница и перезагрузка с новым результатом, как если бы был вызван Html.ActionLink (напомнив, что единственной причиной для использования Ajax.ActionLink было то, что я хотел, чтобы метод вызывался с помощью POST вместо GET)?(И поскольку эта страница использует мастер-страницу, у меня нет возможности просто поместить идентификатор в элемент body.)

1 Ответ

0 голосов
/ 22 июня 2010

Вы можете сделать POST без Ajax. Вам нужно будет использовать форму и изменить свой ActionLink на кнопку «Отправить». Это может быть самый простой способ.

В противном случае вам нужно изменить действие List для возврата PartialView. Это то, что отображается в вашем UpdateTargetId, который вы можете просто установить как внешний div на своей странице.

Вам действительно нужно перезагрузить свой список вообще? Вы можете сделать свой Ajax POST для удаления строки в базе данных и использовать свойство OnSuccess AjaxOptions для вызова функции JavaScript, которая затем удаляет строку из html на странице.

...