다음과 같이 설정합니다.
Controller -> Controller
Action -> Admin_Action
예 :
/admin/Users/Create
Controller -> Users
Action -> Admin_Create
/admin/Users/Delete/1
Controller -> Users
Action -> Admin_Delete(1)
라우팅 규칙을 사용하여 달성 할 수 있습니까?
다음과 같이 설정합니다.
Controller -> Controller
Action -> Admin_Action
예 :
/admin/Users/Create
Controller -> Users
Action -> Admin_Create
/admin/Users/Delete/1
Controller -> Users
Action -> Admin_Delete(1)
라우팅 규칙을 사용하여 달성 할 수 있습니까?
나는 ... 다음 경로 매핑이 작동합니다
routes.MapRoute("YourRouteName", "admin/controller/action/{id}", new { controller = "Controller", action = "Admin_Action", id = UrlParameter.Optional });
사용이 생각 :
routes.MapRoute("Admin", // Route name
"admin/{controller}/{action}/{id}", // URL with parameters
new { controller = "Controller", action = "Admin_Action", id = UrlParameter.Optional } // Parameter defaults
);
을하지만 당신이 원한다면 당신은 또한 www.example.com/admin/을 할 수
routes.MapRoute(
"Default",
"admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
업데이트
routes.MapRoute(
"AdminArea",
"admin/{controller}/{action}/{id}",
new { controller = "Users", action = "Index", id = UrlParameter.Optional }
);
미안하지만, 나는 내 질문이 불분명하다는 것을 깨달았다. 이제 제대로 편집했습니다. –
컨트롤러 이름을 사용자로 변경하면 업데이트가 표시됩니다. –
this answer에 설명 된대로 RouteHandler
을 사용하여 작업에 이름을 추가 할 수 있습니다. 나는 당신의 모든 관리 작업을 배치해야 브로디 동의
routes.MapRoute("Admin", // Route name
new Route("admin/{controller}/{action}/{id}",
new RouteValueDictionary(
new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
new AdminHandler()
)
);
을하지만 : 당신이 작성하는 경우
는 RouteHandler는 다음과 같이 다음 경로를 정의 할 수 있습니다, 당신의 행동에 "Admin_`을 씁니다 AdminHandler
이름 별도의 영역으로 더 나은 디자인이므로 보안 및 유지 관리가 쉬워집니다.
내 질문에 분명하다고 생각되지 않습니다. 관리자에 URI가있을 때 관리자 앞에 작업을 추가해야한다는 의미입니다. . (지금 내 질문에) –
그 경우 다른 컨트롤러 "AdminController"를 만드는 것이 좋습니다. 경로 매핑에 "admin/.."이있을 때 사용됩니다. 또한 "영역"기능을 사용하는 방법을 살펴보십시오 ... 주로 유지 관리의 관점에서 뚱뚱한 컨트롤러를 만드는 것을 피해야합니다. – brodie
그 의견을 보내 주셔서 감사합니다. Area 함수를 살펴 보겠습니다. 나는 이것이 실제로 내가하려고하는 것에 대한 해답이라고 생각한다. :) –