I have a controller which has Add, Edit, Delete and Index action methods. For my Add action, after the add, it redirects to Index in order to refresh the grid to show the add.
For Delete it is not redirecting. The delete is occurring, but I only see it if I manually refresh the page. I tried
return RedirectToAction(nameof(Index));
and
w("Index", otList);
where "otList" is the model.
The is the code that invokes the delete action in the controller
$("#deleteButton").click(function () {
var button = $(this);
$.ajax({ method: 'POST', url: button.data('url') })
.done(function () {
$('#confirmModal').modal('hide');
button.removeData('url');
})
.fail(function () {
magalert.communicationError();
});
});
Here is the Delete action method in the controller
public IActionResult Delete(int Id)
{
try
{
var jurisdictionId = _user.Current().JurisdictionId;
_electedOfficials.deleteOrgType(jurisdictionId, Id);
//Refresh data post delete for the grid
List<OrganizationType> otList = new List<OrganizationType>();
otList = (List<OrganizationType>)_electedOfficials.OrgTypeList(jurisdictionId);
//return View(otList);
//return RedirectToAction(nameof(Index));
return View("Index", otList);
}
catch (Exception e)
{
_logger?.LogCritical(new EventId(103, "CAdminOrganizationType"), e, $"Error when deleting id: " + Id);
throw;
}
}
Any ideas why the Index view is not refreshing like it does for after the Add action? I tried to redirect and tried specifying the view and model in the return.
Here is the Index action method if that helps
public IActionResult Index()
{
try
{
var jurisdictionId = _user.Current().JurisdictionId;
List<OrganizationType> otList = new List<OrganizationType>();
otList = (List<OrganizationType>)_electedOfficials.OrgTypeList(jurisdictionId);
return View(otList);
}
catch (Exception e)
{
_logger?.LogCritical(new EventId(101, "CAdminOrganizationType"), e, $"Error when loading Organization Types View");
throw;
}
}