Sunday, December 2, 2018

asp.net mvc - MVC 4 @Scripts "does not exist"



I have just created an ASP.NET MVC 4 project and used Visual Studio 2012 RC to create a Controller and Razor Views for Index and Create Actions.




When I came to run the application, and browsed to the Create view, the following error was shown:




Compiler Error Message: CS0103: The name 'Scripts' does not exist in
the current context




The problem is the following code which was added automatically to the bottom of the View:




@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}


Why does Scripts not exist?



I looked at the base Web Page class in Assembly System.Web.Mvc.dll, v4.0.0.0



I can see the following helper properties available:





  • Ajax

  • Html

  • Url



But nothing named Scripts.



Any ideas?




EDIT:



My Web.config file looks like this (untouched from the one that Visual Studio created):



  













EDIT #2:




People are blogging about using the @Scripts helper:





Yet having just installed Visual Studio 2012 RC onto a fresh Windows 8 install I am still unable to use @Scripts even though Visual Studio adds it to the generated View!



Solutions are presented below.



I am not sure how to close this, because in the end an update seemed to resolve the issue. I double checked I had performed a clean install, using a new project. But the same failing project I had made works fine now after various updates and no manual obvious intervention. Thanks for all of the thoughts but there was definitely an issue at the time ;)


Answer




The key here is to add



  


to BOTH web.config files. My scenario was that I had System.Web.Optimization reference in both project and the main/root web.config but @Scripts still didn't work properly. You need to add the namespace reference to the Views web.config file to make it work.



UPDATE:



Since the release of MVC 4 System.Web.Optimization is now obsolete. If you're starting with a blank solution you will need to install the following nuget package:




Install-Package Microsoft.AspNet.Web.Optimization


You will still need to reference System.Web.Optimization in your web.config files. For more information see this topic:



How to add reference to System.Web.Optimization for MVC-3-converted-to-4 app



As many pointed out, restart of VS could be required after the above steps to make this work.


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...