Tôi đang sử dụng Ajax.BeginForm để tạo một biểu mẫu sẽ thực hiện đăng lại ajax cho một hành động nào đó của bộ điều khiển và sau đó nếu hành động thành công, người dùng sẽ được chuyển hướng đến một trang khác (nếu hành động không thành công thì thông báo trạng thái sẽ được hiển thị bằng cách sử dụng 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]
}
Nếu xóa thành công, tôi sẽ trả về kết quả Chuyển hướng:
[Authorize]
public ActionResult Delete(Int32 UserId)
{
UserRepository.DeleteUser(UserId);
return Redirect(Url.Action("Index", "Home"));
}
Nhưng chế độ xem Chỉ mục Bộ điều khiển Trang chủ đang được tải vào UpdateTargetId và do đó tôi kết thúc với một trang trong một trang. Hai điều tôi đang nghĩ đến:
- Hoặc tôi đang kiến trúc sai và nên xử lý loại hành động này theo cách khác (không sử dụng ajax).
- Thay vì trả về kết quả Chuyển hướng, hãy trả về một dạng xem có javascript trong đó thực hiện chuyển hướng ở phía máy khách.
Có ai có ý kiến về # 1 không? Hoặc nếu # 2 là một giải pháp tốt, thì "chế độ xem javascript chuyển hướng" sẽ như thế nào?