2011-02-06 3 views
7

VS2010 Ultimate, ASP.NET MVC 3 면도기.ASP.NET MVC3 면도기 - 다른 위치에 뷰를 배치 할 때 인텔리 센스가 손실 되었습니까?

나는이 모든 내가 인텔리에서 잃은 것을 제외하고, 좋은 작품을 너무 등

~/areas/admin 
    /marketing 
     /views 
      index  
     /controllers 
      marketingController 
     /email 
      /views 
       index 
       ... 
      /controllers 
       emailController 
     /templates 
      /views 
       index 
       edit 
       ...     
      /controllers 
       templatesControler 

처럼 중첩 된 영역을 수 있습니다 내 MVC3 응용 프로그램에서 사용자 지정보기 엔진을 만든

보기가 표준이 아닌 ~/areas/area_name/views/myview.cshtml 위치입니다.

제안 사항?

업데이트 그냥 종달새에, 나는 @inherits 문

@inherits System.Web.Mvc.WebViewPage<Namespace.Models.Class> 

을 추가 인텔리는 일하기 시작했다. 그런 다음 진술을 삭제하고 을 계속 실행하여을 작동시킵니다.

프로젝트 파일이나 Visual Studio에 파일 확장명이 아닌 열린 파일에 적용 할 인텔리 센스의 종류를 알려주는 설정이 있습니까? (확장 기능이 모두 사용 되었다면 훨씬 더 일관성있는 기능을 기대할 수 있습니다.) 업데이트 2

내보기 각 폴더에 Web.config의 추가가 루트의 Web.config에 면도기 설정을 가하고, 아주 능숙하게 문제를 해결하는 동안

하지 않습니다. ~/web.config에 필요한 system.web.webPages.razor 섹션을 추가 한 후

  1. 나는 내 중첩 된보기 폴더 중 하나에 면도기 .cshtml 뷰 파일을 추가합니다.
  2. Intellisense가 작동합니다.
  3. 파일 이름 변경 (.cshtml 확장자 유지)
  4. Intellesense 및 구문 강조 표시가 작동하지 않습니다.
  5. 이름이 바뀐 파일을 닫고 다시 엽니 다. 다시 모든 작업이 시작됩니다.
  6. 또는 파일을 닫은 후 다시 여는 대신 다시 원래 이름으로 바꿉니다. 다시 작동하기 시작합니다.

이 파일은 VS 버그와 같은 느낌입니다. 그러나 적절한 확장명을 유지하면서 파일 이름을 변경하면 이러한 종류의 동작이 발생하지 않습니다. 문제가 해결 되었기 때문에 각각의 뷰 폴더에 각각 web.config을 넣을 것입니다.하지만 해결책을 혼란스럽게해야만 성가신 것입니다. 이러한 설정이 다른 web.config 설정과 같은 솔루션 트리를 통해 전파 될 것으로 기대할 때입니다. .

면도기 설정이있는 위치에 상관없이 intellesense가 작동하는지 여부에 관계없이 사이트가 계속 올바르게 작동한다는 점도 유의해야합니다.

내가이 MVC3 RTM 및 VS2010 SP1에서 해결 알려진 문제라고 권력자에 의해 (매우 빠르게) 소식을 들었다

를 해결. MVC3 설치를 업데이트하고 SP1을 추가하면 문제가 사라졌습니다.

+0

네 말이 맞아; 그게 VS 버그 같아. [email protected]으로 전자 메일을 보내주십시오. – SLaks

+0

할 것입니다. 마침내 오라클을 보러 갈 이유가 있습니다. –

답변

7

Views 폴더에는 Web.config file that sets default options for Razor views (기본 기본 유형과 네임 스페이스 및 @model 지시문을 사용하는 사용자 지정 호스트 포함)이 포함되어 있습니다.

다른 폴더의 면도기는이 구성을 상속하지 않습니다.
당신은 당신의 폴더에 Web.config에이 구성을 추가해야합니다

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+0

우수한 호출, 빠른 수정, 비록 내가 왜 이러한 설정이 루트 web.config에서 전파되지 않는지 정말로 이해하지 못합니다. 어떤 통찰력? –

+0

루트 웹 구성에는 이러한 설정이 정의되어 있지 않습니다. 그러나 당신은 항상 당신 자신을 추가 할 수 있습니다. – marcind

+0

@David : 다른 폴더의 MVC가 아닌 페이지가 손상되지 않도록하려면 'Views/Web.config'에만 추가됩니다. – SLaks

관련 문제