Я только что создал проект ASP.NET MVC 4 и использовал Visual Studio 2012 RC для создания представлений контроллера и Razor для Index
и Create
действий.
Когда я пришел, чтобы запустить приложение и перешел к Create
представлению, была показана следующая ошибка:
Сообщение об ошибке компилятора: CS0103: имя «Сценарии» не существует в текущем контексте
Проблема заключается в следующем коде, который был автоматически добавлен в конец представления:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Почему сценариев не существует?
Я посмотрел на базовый класс веб-страниц в сборке System.Web.Mvc.dll, v4.0.0.0
Я вижу следующие доступные свойства помощника:
- Ajax
- Html
- Веб-сайт
Но ничто по имени Скрипты.
Любые идеи?
РЕДАКТИРОВАТЬ:
Мой файл 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
помощника:
Тем не менее, после установки Visual Studio 2012 RC на новую установку Windows 8 я все еще не могу использовать его, @Scripts
хотя Visual Studio добавляет его в сгенерированный View!
Решения представлены ниже.
Я не уверен, как закрыть это, потому что в конце концов обновление, казалось, решило проблему. Я дважды проверил, что я выполнил чистую установку, используя новый проект. Но тот же неудачный проект, который я сделал, теперь отлично работает после различных обновлений и без очевидного ручного вмешательства. Спасибо за все мысли, но определенно была проблема в то время;)
<system.web.webPages.razor> <pages pageBaseType=""> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> etc... </pages>