Ajax.BeginForm을 사용하여 특정 컨트롤러 작업에 대한 ajax 포스트 백을 수행하는 양식을 만들고 작업이 성공하면 사용자가 다른 페이지로 리디렉션되어야합니다 (작업이 실패하면 상태 메시지가 AjaxOptions UpdateTargetId).
using (Ajax.BeginForm("Delete", null,
new { userId = Model.UserId },
new AjaxOptions { UpdateTargetId = "UserForm", LoadingElementId = "DeletingDiv" },
new { name = "DeleteForm", id = "DeleteForm" }))
{
[HTML DELETE BUTTON]
}
삭제에 성공하면 리디렉션 결과를 반환합니다.
[Authorize]
public ActionResult Delete(Int32 UserId)
{
UserRepository.DeleteUser(UserId);
return Redirect(Url.Action("Index", "Home"));
}
그러나 Home Controller Index 뷰는 UpdateTargetId에로드되므로 페이지 내 페이지로 끝납니다. 내가 생각하는 두 가지 :
- 내가 이것을 잘못 설계하고 있으며 이러한 유형의 작업을 다르게 처리해야합니다 (ajax를 사용하지 않음).
- 리디렉션 결과를 반환하는 대신 클라이언트 측에서 리디렉션을 수행하는 자바 스크립트가있는 뷰를 반환합니다.
누구든지 # 1에 대한 의견이 있습니까? 또는 # 2가 좋은 해결책이라면 "자바 스크립트보기 리디렉션"은 어떤 모습일까요?