1

MVC3 애플리케이션이 있고 데이터베이스에 저장된 뷰 컨텐츠가 문자열로 거의 없습니다. 이제 가상 뷰를 만들어이를 클라이언트에 반환해야합니다. VirtualPathProvider를 사용하여이 작업을 수행 할 수 있음을 읽었습니다. 그러나 이것이 RazorViewEngine으로 할 수 있는지 여부를 알고 싶었습니다.MVC3 및 VirtualPathProvider가없는 가상 뷰

EDIT1 : 이 링크에 제안 된대로 VPP를 사용했습니다. http://blog.rocketbase.co.uk/2011/04/asp-net-mvc-virtual-path-provider/. 그리고 global.asax 파일에 등록했습니다. 나는 프로젝트에 실제로 존재하는 많은 의견을 가지고있는 꽤 큰 웹 앱을 가지고있다. 그래서 VPP를 global.asax에 등록한 후에는 웹 사이트에있는 모든 요청이이 VPP를 거쳐야한다는 것을 알게되었습니다.

  • 실제 또는 동적보기로 사용하십시오. 이 때문에 성능이 저하되지 않습니까? URL을 추적하여 VPP에 대한이 호출을 제어 할 수 있습니까?
  • 또한 내 프로젝트에는 .cshtml 파일 만 있지만 mvc는 .ascx, .aspx, .vbhtml 등의 파일을 찾으려고 시도합니다. 다시 한 번 느낀 점은 성능에 부정적인 영향을 미칩니다.
+0

예. 가능합니다. 읽기이 http://stackoverflow.com/questions/4798334/is-it-possible-to-display-raw-html-from-database-in-asp-net-mvc-3 –

+0

아니요, 그러면 형식이 지정된 html을 클라이언트에 넣을 것입니다. 하지만 완전한 가상보기를 보낼 수있는 방법을 찾고있었습니다. – thinkmmk

답변

0

RazorViewEngine은 가상 경로 공급자 (VPP)를 사용하여 파일을 찾습니다. ASP.NET의 기본 VPP는 디스크의 파일을 찾습니다. 데이터베이스에서 뷰 내용을 가져 오는 사용자 지정 VPP를 작성할 수 있습니다. ASP.NET에서 사용자 지정 VPP를 등록하면 MVC는 해당 뷰를 컴파일,로드 및 렌더링 할 수 있습니다.

또 다른 대안은 전혀 새로운 뷰 엔진을 작성하는 것이지만 쉬운 일은 아닙니다. VPP를 사용하고 싶지 않다면 두 개의 빌트인 뷰 엔진이 확실히 이것을 지원하지 않기 때문에 커스텀 뷰 엔진을 작성해야한다고 생각합니다.

+0

Elion 감사합니다. 당신이 말한 것을 이해했습니다. 제 질문을 편집했습니다. 위의 EDIT1 텍스트를 확인하십시오. – thinkmmk