2010-06-22 3 views
0

ASP.NET MVC 2 프로젝트에서 뷰를 검색 할 때 사용자 지정 토큰을 사용할 수있는 사용자 지정 뷰 엔진을 작성하려면 어떻게해야합니까? PagesController에서뷰 엔진에서 사용자 지정 토큰?

:

public ActionResult ViewPage(string folder, string page) 
{ 
    return View(folder, page); 
} 

내가 디렉토리보기를 검색 할 뷰 엔진을 원하는 :

특히,이 달성하기 위해 노력하고있어 /보기/페이지/[폴더]/

폴더 이름을 알지 못하면 어떻게해야합니까? 이상적으로이 사용자 정의 된 뷰 엔진은이 단일 컨트롤러에만 사용됩니다.

답변

0

이 문제를 해결하기 위해 자체 뷰 엔진을 구현할 필요가 없습니다. 원하는보기로의 경로를 제공하면됩니다. 이런 식으로 뭔가 :

return View("~/Views/Pages/FolderName/ViewName.aspx"); 

당신의 예는 다음과 같이 보일 수 있습니다 :

public ActionResult ViewPage(string folder, string page) { 
    return View(string.Format("~/Views/Pages/{0}/{1}.aspx", folder, page)); 
} 
+0

예, 나는이 사실, 즉 내가 지금하고있어 무엇을 할 수 있다는 걸. 가능하다면 뷰 엔진을 사용할 수 있기를 바랍니다. –

+0

@Brian Vallelunga, 왜 그렇게하고 싶습니까? 이와 같이 뷰의 위치를 ​​전달할 수 있다는 것은 뷰 엔진의 기능입니다. 왜 그것을 복제합니까? 덜 유지 보수성이 높은 코드로 이어질 가능성이 큽니다. –

+0

이 경우에 당신이 맞을 것 같습니다. 당신이 얻지 못하는 것은 예를 들어 자동 404 검사입니다. 물론 쉽게 추가 할 수 있습니다. –

0

이 값은 요청에 의해 변경하는 경우는 다음 CreateView을 덮어 쓸 필요 (... 그것은 그렇게 보인다). 내가 직접 수행하지만, SO 누군가에 하나의 질문에 그것의 가능한 말했다하지 않은 :

Localization with separate Language folders within Views

관련 문제