MVC 4 응용 프로그램에서 중요한 리팩터링을 한 후 Razor는 뷰를 디버깅하는 동안이 오류를 표시합니다.
현재 컨텍스트에 ‘model’이라는 이름이 없습니다.
이것은 잘못된 코드 행입니다.
@model ICollection<DataSourceByActive>
사용법 @model
이 올바른 것을 알고 있습니다.
왜 이런 일이 발생합니까? 어떻게 고칠 수 있습니까?
답변
Views 폴더에있는 web.config 파일을 엉망으로 생각합니다.
동일한 .NET 프레임 워크를 대상으로하는 새 프로젝트를 작성하고 Views / web.config 파일을 현재 프로젝트의 파일 위에 복사하십시오. 문제가 해결됩니다.
또한 Dudeman3000이 언급했듯이 MVC 프로젝트에 영역이 있으면 Views\web.config
파일도 있습니다.
답변
확인 당신에게 두 사이트에 다음이 Web.config
및 뷰 디렉토리 Web.config
에 appSettings
섹션
<add key="webpages:Version" value="2.0.0.0" />
MVC5의 경우 :
<add key="webpages:Version" value="3.0.0.0" />
(그리고 그것은 주 Web.config
파일 에만 존재 합니다.)
답변
여기 내가 한 일이 있습니다.
- Visual Studio 닫기
- SUO 파일 삭제
- 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가 상당히 나빠졌습니다. 이 기사는 엄청나게 도움이되었습니다.
결론은 web.config 및 Views / web.config에서 모든 버전 번호 참조가 MVC 5와 관련된 올바른 업그레이드 버전을 참조하고 있는지 확인해야한다는 것입니다.
답변
@model에서 @Model로 변경하면 나를 위해 일했습니다.
@model은 뷰 모델 객체 유형을 나타냅니다. @Model은 뷰 모델 객체를 나타냅니다.