[c#] 현재 컨텍스트에 ‘ViewBag’이름이 없습니다.-Visual Studio 2015

ASP.NET에서 다시 개발하기 시작했는데 Visual Studio에서 작은 오류가 발생했습니다. 내 .cshtml 파일은 몇 가지 면도기 기능을 사용할 때 오류를 표시합니다. 예 : “현재 컨텍스트에 ‘ViewBag’이름이 없습니다.” 다음은 사진입니다.

Visual Studio 2015의 문제 스크린 샷

데모 프로젝트를 사용하고 있습니다. 프로젝트는 https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject 에서 찾을 수 있습니다.

몇 가지 다른 스레드를 살펴본 결과 web.config 파일을 업데이트하는 것이 좋습니다. 이 2 개의 구성 파일은 이미 존재하며 꽤 인기있는 데모이므로 필요한 모든 구성이 포함되어 있다고 가정합니다. 물론 이러한 구성 파일을 살펴 보았으며 실제로 제안 된 솔루션이 포함되어 있습니다.

기타 세부 사항:

  • 나는 이미 솔루션에서 정리 및 재구성을 사용했지만 아무것도 변경하지 않았습니다.
  • 완전히 새로운 MVC 프로젝트를 만들면 작동합니다.
  • 내 친구는 같은 문제가 있으며 우리 둘 다 VS 2015와 Windows 10을 사용합니다.
  • 여전히 응용 프로그램을 실행할 수 있으며 작동합니다.

미리 감사드립니다.



답변

모든 올바른 구성에도 불구하고이 문제가 발생했습니다.

Razor 뷰가 ViewBag, Model 및 HtmlHelpers를 인식하지 못하도록 구성 요소 캐시의 일부 잘못된 파일로 판명되었습니다 . 이 파일을 삭제하면 문제가 해결되었습니다 (다음에 Visual Studio를 열 때 이러한 파일의 좋은 버전이 생성되었습니다).

파일은 다음 위치에 있습니다.

%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache

4 개의 파일을 모두 삭제합니다.

  • Microsoft.VisualStudio.Default.cache
  • Microsoft.VisualStudio.Default.catalogs
  • Microsoft.VisualStudio.Default.err
  • Microsoft.VisualStudio.Default.external

이후에 다른 여러 개발자 컴퓨터에서 동일한 문제를 보았으며이 수정으로 신속하게 해결됩니다.


답변

web.configViews 폴더 의 파일 설정에서 버전 번호를 업데이트 합니다.

 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

너겟을 통해 MVC 버전을 업데이트 한 경우 다음과 같아야합니다.

 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

다른 종속성 버전도 업데이트해야 할 수 있습니다. MVC 도우미 및 개체에 대한보기의 컴파일 및 네임 스페이스 문제는 일반적으로 web.config보기 폴더 내에서 엉망이 된 파일 과 관련이 있습니다.


답변

appsettings에서 “webpages : Version”을 찾아 3.0.0.0 버전으로 업데이트합니다. 내 web.config에는

<add key="webpages:Version" value="2.0.0.0" />

그리고 나는 그것을 업데이트했습니다

<add key=”webpages:Version value=”3.0.0.0 />


답변

불필요하다고 생각 web.config하여 실수로 Views폴더 에서 제거 했습니다. 다시 넣으면 작동하기 시작했습니다.


답변

태양 아래 모든 것을 시도 후에는 밝혀 뭔가 내 수정 한 System.Web.WebPages.Razor <sectionGroup>의를 /Views/Web.Config적절한 낙타 표기법에서 System.Web.WebPages.Razor모두 소문자로 system.web.webpages.razor궁극적으로 나의 죽음이었다.

이것이이 문제로 다른 불쌍한 영혼을 도울 수 있기를 바랍니다.

참고로 이것은 올바른 항목입니다 (내 시나리오의 경우).

<sectionGroup name="System.Web.WebPages.Razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 


답변

때때로 web.config의 설정에서 버전 번호를 변경하는 것으로 충분하지 않습니다. 이 문제는 Visual Studio 2015에 mvc4 도구가 없기 때문에 발생합니다.

해결책은 프로젝트를 MVC 5로 업그레이드하는 것입니다. 문제가 완전히 해결됩니다. 이 페이지에서 도움을받을 수 있습니다. 그것은 그것을 명확하게 설명합니다.

http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2

그런데 Visual Studio 팀은 첫 번째 업데이트와 함께 Visual Studio 2015에 mvc4 지원을 추가 할 것이라고 선언했습니다.


답변

나는이 문제에 더 많이 직면했고 마침내보기 폴더에 자체 웹 구성이 포함되어야하기 때문에 발생했다는 것을 발견했습니다.