방금 ASP.NET MVC 4 프로젝트를 만들고 Visual Studio 2012 RC를 사용하여 컨트롤러 및 면도기보기 Index
및 Create
작업 을 만들었습니다 .
응용 프로그램을 실행하고 Create
보기를 탐색 할 때 다음 오류가 표시되었습니다.
컴파일러 오류 메시지 : CS0103 : 현재 컨텍스트에 ‘Scripts’라는 이름이 없습니다.
문제는 View의 맨 아래에 자동으로 추가 된 다음 코드입니다.
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
왜 스크립트가 존재하지 않습니까?
Assembly System.Web.Mvc.dll, v4.0.0.0의 기본 웹 페이지 클래스를 보았습니다.
다음과 같은 도우미 속성을 사용할 수 있습니다.
- 아약스
- HTML
- URL
그러나 스크립트라는 이름은 없습니다.
어떤 아이디어?
편집하다:
내 Web.config 파일은 다음과 같습니다 (Visual Studio에서 만든 파일에서 변경되지 않음).
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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>
편집 # 2 :
사람들은 @Scripts
도우미 사용에 대해 블로깅하고 있습니다 .
그러나 새로운 Windows 8 설치에 Visual Studio 2012 RC를 방금 설치 @Scripts
했지만 Visual Studio가 생성 된 View에 추가하더라도 여전히 사용할 수 없습니다 !
솔루션은 다음과 같습니다.
결국 업데이트가 문제를 해결하는 것처럼 보였으므로 닫는 방법을 잘 모르겠습니다. 새 프로젝트를 사용하여 새로 설치를 수행했는지 다시 확인했습니다. 그러나 내가 만든 동일한 실패한 프로젝트는 다양한 업데이트와 수동 개입 없이도 잘 작동합니다. 모든 생각에 감사하지만 당시에는 분명히 문제가있었습니다.)
답변
여기서 핵심은 추가하는 것입니다
<add namespace="System.Web.Optimization" />
web.config 파일 모두에. 내 시나리오는 프로젝트와 기본 / 루트 web.config 모두에서 System.Web.Optimization 참조를 가지고 있었지만 @Scripts는 여전히 제대로 작동하지 않았습니다. 네임 스페이스 참조를 Views web.config 파일에 추가해야 작동합니다.
최신 정보:
MVC 4 System.Web.Optimization의 출시 이후 더 이상 사용되지 않습니다. 빈 솔루션으로 시작하는 경우 다음 nuget 패키지를 설치해야합니다.
Install-Package Microsoft.AspNet.Web.Optimization
web.config 파일에서 여전히 System.Web.Optimization을 참조해야합니다. 자세한 정보는 다음 주제를 참조하십시오.
MVC-3-converted-to-4 앱에 대한 System.Web.Optimization에 대한 참조를 추가하는 방법
많은 사람들이 지적했듯이 위의 단계 후에 VS를 다시 시작 해야이 작업을 수행 할 수 있습니다.
답변
@Styles
과 @Scripts
에서 제공하는 2 개의 새로운 도우미입니다 System.Web.Optimization
라이브러리. 이름에서 알 수 있듯이 CSS와 JavaScript 파일 또는 리소스를 각각 묶고 축소합니다.
지시문 또는 다음을 통해 네임 스페이스 System.Web.Optimization
를 포함 시키십시오.@using
web.config
http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#BundlingAndMinification
최신 정보
Microsoft는 번들링 / 축소를라는 별도의 패키지로 옮겼습니다 Microsoft.AspNet.Web.Optimization
. nuget 에서 어셈블리를 다운로드 할 수 있습니다 .
이 게시물 이 도움이 될 것입니다.
답변
위에서 다른 작은 단계가 누락되어 다른 게시물에서 발견했습니다. 추가 후
<add namespace="System.Web.Optimization" />
당신에 ~/Views/web.config
네임 스페이스, 닫고 다시 Visual Studio를 엽니 다. 이것이 내가이 일을하기 위해해야했던 일입니다.
답변
영역을 사용하고 있으며이 문제와 관련하여 방금 네임 스페이스를 루트 web.config에서 영역 웹으로 복사했습니다. 구성 및 이제 작동합니다!
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
답변
나는 같은 문제가 있었고 WinMerge를 사용하여 이것을 추적하는 데 도움을주었습니다. 그러나 더 자세히 조사한 결과 Rick이 블로그에 대한 완벽한 블로그 게시물 을 가지고 있음을 발견 했습니다.
요약:
- 더하다
<add namespace="System.Web.Optimization"/>
두 web.config 파일 모두에 - 운영
Install-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
- 번들링 코드 업데이트
- 레이아웃 파일 업데이트
- 마지막 단계는 10 개의 다른 라이브러리를 업데이트하는 것입니다. 나는하지 않고 잘 작동했습니다. 따라서이 중 하나를 이미 업데이트하지 않은 한이를 미루는 것처럼 보입니다. 🙂
답변
나는 같은 문제가 있었다.
내가 사용하고 있던 System.Web.Optimization 버전은 MVC4 RC 용으로 구 버전입니다.
VS 2010에서 패키지 관리자를 사용하여 패키지를 업데이트했습니다.
이 MSDN 블로그에서 에서 Andy 씨는 MVC 4 베타 프로젝트를 MVC 4 RC로 업데이트하는 방법에 대해 설명합니다. 내 패키지를 업데이트하면 스크립트 (특히 웹 최적화 패키지)가 해결됩니다.
최신 System.Web.Optimization 패키지를 설치하려면 패키지 관리자 콘솔 (도구-> 라이브러리 패키지 관리자-> 패키지 관리자 콘솔)을 사용하고 아래 명령을 실행하십시오.
Install-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
패키지에 포함 된 System.Web.Optimization 파일을 참조하십시오.
다른 패키지를 업데이트하려면 : 도구 메뉴-> 라이브러리 패키지 관리자-> 솔루션 용 NuGet 패키지 관리.
답변
새로운 MVC 4 RC 인터넷 응용 프로그램을 만들고 실행하십시오. 동일한 코드를 사용하는 로그인으로 이동
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Login.cshtml이 작동하도록하는 것은 Views \ Web.config 파일 (앱 루트 버전이 아님)에 포함되어 있습니다.
<namespaces>
<add namespace="System.Web.Optimization"/>
</namespaces>
작성보기가 작동하지 않고 로그인이 왜 필요한가요?