2012-08-04 2 views
0

나는 BaseController을 모두 상속받은 몇 가지 Controllers이 있습니다.ASP.NET MVC 기본 클래스 경로

컨트롤러에 BaseController을 상속하는 관리자 Area 설치가 있습니다. BaseController에는 public JsonResult DoSomething()이라는 메서드가 있습니다. 이 중 Controllers 중 일부에 Url.Action이 정의 된보기가있는 경우 기본 참조에서 영역 참조가있는 DoSomething() 메서드를 어떻게 참조 할 수 있습니까? FruitController의

BaseController 
FruitController : BaseController 
VegetableController : BaseController 

인덱스보기

내가 행동 단지 변수 생성자가 있다고 생각하지 말아
@Url.Action("DoSomething", ???, new { area = "Admin" }) 

에 통화가 있습니다. 그냥 방금 public JsonResult DoSomething() 각각의 컨트롤러 정의에 붙어있어 내가 BaseController에 관계없이 메서드를 호출 할 수없는 것 같습니다.

답변

0

BaseController을 상속 받기 때문에 DoSomething을 컨트롤러에 연결하면 DoSomething 동작을 갖게됩니다. 그러나 반환하는보기는 올바른 컨트롤러 뷰 폴더 아래에 있어야합니다. 그렇지 않으면보기가 명시된 위치를 명시해야합니다.

@Url.Action("DoSomething", "Fruit", ... 
+0

내가 피하고 싶었던 것입니다. 컨트롤러 자체에서 정의한 것처럼 실제 뷰를 만드는 데 너무 많은 노력이 필요하다고 생각합니다. 내가 사용할 수있는 또 다른 경로는 global.asax에서 정의하는 것입니다. 나는 이것들 중 하나를하지 말고 basecontroller에 전화하기를 희망했으나 그것이 작동하지 않을 것 같습니다. – fes

+0

"기본 컨트롤러로 호출 할 수 있습니다."그게 내가 말하는거야. 모든 컨트롤러에서 DoSomething 액션을 정의 할 필요는 없습니다. BaseController를 상속하면 액션이 자동으로 생성됩니다. 뷰를 Base 폴더 아래에 놓으면 MVC 엔진이 뷰를 검색합니다. –

+0

나는 그것이 잘 될 것이라고 생각하면서 조언 한 것을했다. Base 폴더를 만들고보기를 만들었지 만, 히트를 치기를 원하지 않는 것 같습니다. – fes