Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Skyls
2 / 2 / 0
Регистрация: 14.12.2013
Сообщений: 87
1

Введение в ASP.NET MVC 5. 2 глава

11.10.2016, 20:05. Просмотров 633. Ответов 7
Метки нет (Все метки)

Здравствуйте! Делаю по этой книге на 2 главе, при запуске выводит ошибку:
Ошибка сервера в приложении '/'.
Ключевое слово не поддерживается: "data
source".
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.ArgumentException: Ключевое слово не поддерживается: "data
source".

Ошибка источника:


Строка 18: <td></td>
Строка 19: </tr>
Строка 20: @foreach (var b in ViewBag.Books)
Строка 21: {
Строка 22: <tr>


Исходный файл: h:\флешка30-09\Визуальное проектирование\BookStore\BookStore\Views\Home\Index.cshtml Строка: 20

Трассировка стека:


[ArgumentException: Ключевое слово не поддерживается: "data
source".]
Делал все как в книге, в visual studio ошибки не высвечиваются. Что не так и как исправить? подскажите пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2016, 20:05
Ответы с готовыми решениями:

ASP.NET MVC 4,ASP.NET MVC 4.5 и ASP.NET MVC 5 большая ли разница между ними?
Начал во всю осваивать технологию,теперь хочу с книжкой посидеть и вдумчиво...

Разница между ASP.NET Core 2, ASP.NET Core MVC, ASP.NET MVC 5 и ASP.NET WEBAPI 2
Здравствуйте. Я в бекенд разработке полный ноль. В чем разница между...

Стоит ли изучать asp.net mvc 4 из за скорого выхода asn.net mvc vNext ?
Доброго вечера! Как я узнал, Microsoft скоро планирует выпустить новый...

Стоит ли изучать ASP.NET MVC 4 не зная просто ASP.NET?
Стоит ли сразу изучать ASP.NET MVC не зная просто ASP.NET? И еще вопрос: мне...

Чем ASP.NET отличается от ASP.NET MVC?
Доброго времени суток форумчане! Хотелось бы подтянуться в области...

7
lvlkoo
.NET C#,ASP.NET MVC
449 / 397 / 185
Регистрация: 16.10.2010
Сообщений: 1,625
Завершенные тесты: 2
11.10.2016, 22:12 2
Цитата Сообщение от Skyls Посмотреть сообщение
@foreach (var b in ViewBag.Books)
Видимо ViewBag.Books в данном случае возвращается как "data source" о чем Razor и сообщает что не может найти такого ключевого слова.

Покажите код метода контроллера
0
Skyls
2 / 2 / 0
Регистрация: 14.12.2013
Сообщений: 87
12.10.2016, 16:57  [ТС] 3
Цитата Сообщение от lvlkoo Посмотреть сообщение
Покажите код метода контроллера
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BookStore.Models;
 
namespace BookStore.Controllers
{
    public class HomeController : Controller
    {
        BookContext db = new BookContext();
        public ActionResult Index()
        {
            //получаем из бд все объекты Book
            IEnumerable<Book> books = db.Books;
           // передаем все объекты в динамическое свойство Books в ViewBag
            ViewBag.Books = books;
            // возвращаем представление
            return View();
        }
    }
}
0
lvlkoo
.NET C#,ASP.NET MVC
449 / 397 / 185
Регистрация: 16.10.2010
Сообщений: 1,625
Завершенные тесты: 2
12.10.2016, 18:11 4
C#
1
2
3
4
5
6
7
8
9
public ActionResult Index()
        {
            //получаем из бд все объекты Book
            var books = db.Books.ToList();
           // передаем все объекты в динамическое свойство Books в ViewBag
            ViewBag.Books = books;
            // возвращаем представление
            return View();
        }
HTML5
1
 @foreach (var b in (IEnumeable<Book>)ViewBag.Books)
А зчем вы предаете через ViewBag? Почему нельзя передать через модель?
0
Skyls
2 / 2 / 0
Регистрация: 14.12.2013
Сообщений: 87
12.10.2016, 18:16  [ТС] 5
Цитата Сообщение от lvlkoo Посмотреть сообщение
А зчем вы предаете через ViewBag? Почему нельзя передать через модель?
Я делаю все по книжке и в книжке указано, что должно нормально запуститься. Только начал изучать этот язык. Вот код модели инициализации БД
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
 
namespace BookStore.Models
{
    public class BookDbInitializer : DropCreateDatabaseAlways<BookContext>
    {
        protected override void Seed(BookContext db)
        {
            db.Books.Add(new Book { Name = "Война и мир", Author = "Л. Толстой", Price = 220 });
            db.Books.Add(new Book { Name = "Отцы и дети", Author = "И. Тургенев", Price = 180 });
            db.Books.Add(new Book { Name = "Чайка", Author = "А. Чехов", Price = 150 });
            base.Seed(db);
        }
    }
}
А этот BookContext:
C#
1
2
3
4
5
 public class BookContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
        public DbSet<Purchase> Purchases { get; set; }
    }
Можете привести пример, как передать через модель?
0
lvlkoo
.NET C#,ASP.NET MVC
449 / 397 / 185
Регистрация: 16.10.2010
Сообщений: 1,625
Завершенные тесты: 2
12.10.2016, 18:35 6
Skyls, в asp.net mvc razor view может быть указана модель данных, которую это представлние будет использовать. Модель данных формируется и передается в методе контроллера. Самый простой способ это прировнять модель представления и сущность бд (этот вариант считается не правельным но для примера сойдет)

C#
1
2
3
4
5
6
7
public ActionResult Index()
        {
            //получаем из бд все объекты Book
            var books = db.Books.ToList();
           // передаем модель в представление 
            return View(books);
        }
HTML5
1
2
3
4
5
6
7
8
<!-- Index.cshtml указываете тип модели с помощью ключевого слова model -->
@model IEnumerable<BookStore.Models.Book>
 
<!-- Затем к обькту можно получить доступ так -->
@foreach (var book in Model)
{
    
}
1
Skyls
2 / 2 / 0
Регистрация: 14.12.2013
Сообщений: 87
12.10.2016, 19:01  [ТС] 7
Попробовал ваш метод - у меня выдает ошибку, то что не может найти объект на который он ссылается(что-то такое). Но я исправил выше приведенною мною ошибку, просто удалив эту секцию кода:
C#
1
2
3
4
5
6
<connectionStrings>
<add name="BookContext" connectionString="Data
Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='|DataDirectory|\Bookstore.mdf';
Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Этот код по книжке надо было вставлять в файл Web.config. Странно, то что без этого кода нормально работает все, а с ним - выдает ошибку.
0
ORLENOK
89 / 88 / 37
Регистрация: 05.08.2011
Сообщений: 419
Завершенные тесты: 5
17.10.2016, 20:29 8
Skyls, я думаю, это связано с тем, что запускаете с флешки. Попробуйте скопировать проект на компьютер и запустить с него. Ещё, возможно, связано с тем, что в пути присутствуют русские символы (но в 2016, по-моему, такие ошибки очень редко встречаются)
0
17.10.2016, 20:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2016, 20:29

ASP.net MVC против MVC обычного
Здраствуйте, читая книгу &quot;Сандерсон С - ASP.NET MVC3 Framework с примерами на...

Перенос с ASP.NET на ASP.NET MVC
Доброго времени суток! Вопрос в следующем: имеются файлы проекта на ASP.NET и...

JS+ASP.NET MVC
Доброго времени суток, возникла следующая проблема. Необходимо реализовать чат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru