Наконец-то мне удалось получить обновление PartialView с помощью Ajax. Цель частичного просмотра - виджет боковой панели, который отображает содержимое регистрации и позволяет удалить элементы из регистрации.Как изящно обрабатывать обновление AJAX PartialView при отключенном Javascript
Сокращенная версия PartialView выглядит следующим образом:
<table id="item-entries">
@foreach (var item in Model.Items)
{
<tr>
<td>@item.Name</td>
<td>@item.Price</td>
<td>
@using (Ajax.BeginForm("RemoveItemEntry", "Registration", new AjaxOptions { UpdateTargetId = "item-entries" }))
{
<button type="submit" name="ItemId" value="@item.ItemId">×</button>
}
</td>
</tr>
}
</table>
А вот сокращенный пример действия:
[HttpPost]
public ActionResult RemoveItemEntry(ItemViewModel data)
{
// Perform logic to remove the item from the registration
// then return the PartialView with updated model
return PartialView("~/Views/Partials/ItemEntries.cshtml", model);
}
}
Это прекрасно работает в настоящее время, однако я не хочу, чтобы предложение сломанный опыт для тех, у кого JavaScript отключен. Если вы публикуете форму с отключенным JavaScript, действие все равно выполняется правильно, но вы перенаправлены на URL-адрес, который отображает PartialView и ничего больше. Я бы хотел, чтобы пользователи, у которых отключен JavaScript, перенаправляются обратно на исходную страницу, из которой была отправлена форма.
Возможно ли это?
'Request.IsAjaxRequest' может помочь вам решить, какой вид будет отображаться. –