Похоже, что существует несоответствие между файлами просмотра, которые некоторые версии Visual Studio автоматически генерируют для вас, когда вы используете его для создания новой модели. Я столкнулся с этой проблемой, используя новую версию VS 2013 Community Edition и просматривая учебник W3Schools на http://www.w3schools.com/aspnet/mvc_app.asp, но комментарии выше показывают, что это не проблема с инструкциями руководства или с единая версия VS.
Это правда , что вы можете сделать сообщение об ошибке исчезнет , только удаление
@Scripts.Render("~/bundles/jqueryval")
строка из макетов создания / редактирования, которые были автоматически созданы Visual Studio.
Но это решение не устраняет основную причину и не дает вам возможности сделать больше, чем завершить изучение руководства. В какой-то момент (вероятно, довольно рано) в разработке реального приложения вам понадобится доступ к коду проверки jquery, который решение для комментирования удаляет из вашего приложения.
Если вы используете VS для создания новой модели, он также создает набор из пяти файлов просмотра: Create, Delete, Details, Edit и Index. Два из этих представлений, Create и Edit, позволяют пользователю добавлять / редактировать данные для полей в записях базы данных, которые лежат в основе модели. Для этих представлений в реальном приложении вы, вероятно, захотите выполнить некоторый объем проверки данных с помощью библиотеки проверки jquery, прежде чем сохранять запись в db. Вот почему VS добавляет следующие строки
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
к нижней части этих двух представлений, а не других. Автоматически сгенерированный код пытается сделать библиотеку проверки доступной для этих представлений, но не для других.
Ошибка возникает из-за того, что VS либо не добавляет соответствующую строку в общий файл _Layout.cshtml, либо, см. Один ответ выше, добавляет ее, но оставляет ее закомментированной. Эта линия
@RenderSection("scripts", required: false)
Если в некоторых из ваших представлений есть раздел сценариев (как в случае создания и редактирования), в макет должна быть встроена команда RenderSection. Если в некоторых сценариях есть раздел, а в некоторых нет (как, например, Delete, Details и Index), команда RenderSection должна иметь required: false
параметр.
Итак, лучшее решение, если вы хотите сделать что-то большее, чем просто закончить изучение руководства, - это добавить оператор в _Layout.cshtml, а не удалять код из представлений Edit и Create.
PS Это немного сбивает с толку, здесь то, что требуется, находится в «пакете», а оператор require выглядит так, как будто он пытается включить файл в папку пакетов, которая не существует в вашем проекте. Но для отладочных сборок и руководств это не актуально, поскольку связанные файлы включаются по одному. См .: http://www.asp.net/mvc/overview/performance/bundling-and-minification . Код, о котором идет речь, кратко упоминается примерно на двух третях страницы.