두 개의 공용 작업 메서드 인 Index() 및 Unsubscribe()가있는 'SubscriptionsController'라는 영역에 '구독자'라는 영역과 컨트롤러가 있습니다. Unsubscribe() 메서드가 전달되는 구독자 ID ie Unsubscribe (int id)라우팅 후 영역을 무시하는 RedirectToAction
Unsubscribe() 메서드는 같은 컨트롤러에서 다른 작업에 대한 RedirectToAction ("Index")을 수행합니다. 나는 '/ 가입자/가입/탈퇴/999'을 통해 페이지에 액세스하는 경우
public ActionResult Index()
{
return View();
}
RedirectToActionMethod()가 올바르게 지수() 액션에 저를 리디렉션.
routes.MapRoute(
"Unsubscribe",
"Unsubscribe/{id}",
new {area = "Subscribers", controller = "Subscriptions", action = "Unsubscribe"}
);
는이 경로가 나타납니다
내가 정식 URL '바로 가기'에 수 있기를 원 ('/ 구독자/구독/탈퇴/999') 그래서 Global.ascx 파일에 대한 경로를 추가 예상대로 Unsubscribe() 메서드를 실행하면 제대로 작동합니다. 문제는 Unsubscribe() 내의 RedirectToAction ("Index")에 대한 호출이 여전히 올바른 동작 (Index())을 호출하는 동안 실패하므로 뷰 엔진이 이제 영역을 무시하고 관련 뷰를로드하려고합니다. ~/Areas/Subscribers/Views/Subscriptions/Index.aspx '대신'~/Views/Subscriptions/Index.aspx '웹 사이트의 루트RedirectToAction() 메서드를 수정하여이 문제를 해결할 수 있습니다. 따라서 탈퇴() 메소드 :
return RedirectToAction("Index", "Subscriptions", new { Area = "Subscribers" });
하지만이 문제에 대한 성가신 아니라 매우 유연한 솔루션처럼 보인다.
모든 조언이나 설명을 주시면 감사하겠습니다.
감사합니다.