1

최근에 MVC2에서 MVC3으로 업그레이드되었습니다. 우리는 Spark 뷰 엔진을 사용 했었고 Razor로 마이그레이션을 시작하려고합니다. 지금까지 MVC3 로의 업그레이드가 성공적이었습니다. 필자는 Spark 뷰 엔진도 업그레이드했기 때문에 업그레이드했습니다.면도기 및 스파크 뷰 엔진이 나란히있는 ASP.NET MVC 3

문제점은 Spark 및 Razor 뷰를 성공적으로 렌더링 할 수 있지만 어떤 이유로 MVC가 한 위치에서 Spark 파일을 찾고 다른 위치에서 Razor를 찾고 있습니다. Razor가 내 영역을 제대로 고려하지 않고 Spark가있는 것처럼 말입니다.

출력 :

내가 MVC가 작동 할 예정입니다 그것을 원하는 곳으로 내 .cshtml 파일을 이동하지만 그것을 잘라 않을거야 경우
<pre> 
The view 'index' or its master was not found or no view engine supports the searched locations. The following locations were searched: 

~/Areas/Live/Views/multimedia/index.aspx 
~/Areas/Live/Views/multimedia/index.ascx 
~/Areas/Live/Views/Shared/index.aspx 
~/Areas/Live/Views/Shared/index.ascx 
~/Views/multimedia/index.aspx 
~/Views/multimedia/index.ascx 
~/Views/Shared/index.aspx 
~/Views/Shared/index.ascx 
~/Areas/Live/Views/multimedia/index.cshtml 
~/Areas/Live/Views/multimedia/index.vbhtml 
~/Areas/Live/Views/Shared/index.cshtml 
~/Areas/Live/Views/Shared/index.vbhtml 
~/Views/multimedia/index.cshtml 
~/Views/multimedia/index.vbhtml 
~/Views/Shared/index.cshtml 
~/Views/Shared/index.vbhtml 
Live\~\Areas\Live\Views\multimedia\index.spark 
Live\~\Areas\Live\Views\Shared\index.spark 
Live\multimedia\index.spark 
Live\Shared\index.spark 
Live\~\Areas\Live\Views\multimedia\index.shade 
Live\~\Areas\Live\Views\Shared\index.shade 
Live\multimedia\index.shade 
Live\Shared\index.shade 
~\Areas\Live\Views\multimedia\index.spark 
~\Areas\Live\Views\Shared\index.spark 
multimedia\index.spark 
Shared\index.spark 
~\Areas\Live\Views\multimedia\index.shade 
~\Areas\Live\Views\Shared\index.shade 
multimedia\index.shade 
Shared\index.shade 
</pre> 

. 왜 두 엔진이 약간 다른 곳을 찾고 있을까요?

답변

0

내가 읽은 바로는 면도기와 스파크가 다양한 방식으로보기를 찾은 것 같습니다 (어쨌든 지역을 사용할 때). 나는 이것이 일반적으로 사실인지 또는 내가 구현하고있는이 구현에 대해 뭔가 다른 것이 있는지 완전히 확신하지 못한다. Razor 엔진을 확장하여 프로젝트의 패턴과 동일한 방식으로 문제를 해결했습니다.

public class CustomRazorViewEngine : RazorViewEngine 
    { 
     public CustomRazorViewEngine(): base() 
     { 
      AreaMasterLocationFormats = new string[] { "~/Areas/{2}/Views/{1}/%1/{0}.cshtml", 
          "~/Areas/{2}/Views/{1}/%1/{0}.vbhtml", 
          "~/Areas/{2}/Views/Shared/%1/{0}.cshtml", 
          "~/Areas/{2}/Views/Shared/%1/{0}.vbhtml" }; 

      AreaPartialViewLocationFormats = new string[] { "~/Views/{2}/Shared/{0}.cshtml" }; 

      AreaViewLocationFormats = new string[] { "~/Views/{2}/{1}/{0}.cshtml", 
         "~/Views/{2}/Shared/{0}.cshtml" }; 

      ViewLocationFormats = new string[] { "~/Views/{1}/{0}.cshtml", 
         "~/Views/Shared/{0}.cshtml" }; 

      MasterLocationFormats = new string[] { "~/Views/{1}/%1/{0}.cshtml", 
         "~/Views/{1}/%1/{0}.vbhtml", 
         "~/Views/Shared/%1/{0}.cshtml", 
         "~/Views/Shared/%1/{0}.vbhtml" }; 

      PartialViewLocationFormats = new string[] { "~/Views/{1}/{0}.cshtml", 
          "~/Views/{1}/{0}.vbhtml", 
          "~/Views/Shared/{0}.cshtml", 
          "~/Views/Shared/{0}.vbhtml" }; 

      FileExtensions = new string[] { "cshtml", "vbhtml" }; 

     } 

    }