[asp.net-mvc] “현재 모델에는 ‘모델’이라는 이름이 없습니다.”

MVC 4 응용 프로그램에서 중요한 리팩터링을 한 후 Razor는 뷰를 디버깅하는 동안이 오류를 표시합니다.

현재 컨텍스트에 ‘model’이라는 이름이 없습니다.

이것은 잘못된 코드 행입니다.

@model ICollection<DataSourceByActive>

사용법 @model이 올바른 것을 알고 있습니다.

왜 이런 일이 발생합니까? 어떻게 고칠 수 있습니까?



답변

Views 폴더에있는 web.config 파일을 엉망으로 생각합니다.

동일한 .NET 프레임 워크를 대상으로하는 새 프로젝트를 작성하고 Views / web.config 파일을 현재 프로젝트의 파일 위에 복사하십시오. 문제가 해결됩니다.

또한 Dudeman3000이 언급했듯이 MVC 프로젝트에 영역이 있으면 Views\web.config파일도 있습니다.


답변

확인 당신에게 두 사이트에 다음이 Web.config및 뷰 디렉토리 Web.configappSettings섹션

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

MVC5의 경우 :

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

(그리고 그것은 주 Web.config파일 에만 존재 합니다.)


답변

여기 내가 한 일이 있습니다.

  1. Visual Studio 닫기
  2. SUO 파일 삭제
  3. Visual Studio를 다시 시작하십시오.

.suo 파일은 .svn 솔루션 파일과 동일한 폴더에 숨겨진 파일이며 Visual Studio 사용자 옵션을 포함합니다.


답변

나는 같은 문제가 있었고 Gupta의 답변에서 권장하는대로 새 프로젝트를 만들고 web.config 파일을 복사했지만 문제가 해결되지 않았습니다. Alex와 Liam의 답변을 확인 했는데이 줄은 새 web.config에서 복사해야한다고 생각했지만 새 프로젝트 자체에는이 줄 (MVC5)이없는 것처럼 보입니다.

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

views / web.config 파일에 줄을 추가하면 문제가 해결되었습니다.


답변

보기 폴더의 web.config에서 다음 줄을 변경하면 동일한 오류가 해결되었습니다.

에서

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

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


답변

필자의 경우 최근에 MVC 4에서 MVC 5로 업데이트되어 web.config가 상당히 나빠졌습니다. 이 기사는 엄청나게 도움이되었습니다.

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

결론은 web.config 및 Views / web.config에서 모든 버전 번호 참조가 MVC 5와 관련된 올바른 업그레이드 버전을 참조하고 있는지 확인해야한다는 것입니다.


답변

@model에서 @Model로 변경하면 나를 위해 일했습니다.

@model은 뷰 모델 객체 유형을 나타냅니다. @Model은 뷰 모델 객체를 나타냅니다.