Не выводит информацию из бд в view. ASP.NET MVC

513
07 февраля 2017, 18:43

Использую sql management studio 2016

Вот скрин:

Код в View ( Index.cshtml):

@model IEnumerable<WebApplication1.Models.Book> 
@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
<div> 
    <h3>Распродажа книг</h3> 
    <table> 
        <tr class="header"> 
            <td><p>Название книги</p></td> 
            <td><p>Автор</p></td> 
            <td><p>Цена</p></td> 
            <td></td> 
        </tr> 
        @foreach (WebApplication1.Models.Book b in Model) 
            { 
            <tr> 
                <td><p>@b.Name</p></td> 
                <td><p>@b.Author</p></td> 
                <td><p>@b.Price</p></td> 
                <td><p><a href="/Home/Buy/@b.Id">Купить</a></p></td> 
            </tr> 
        } 
    </table> 
</div>

WebConfig:

  <connectionStrings> 
    <add name="BookContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='|DataDirectory|\Bookstore.mdf';Integrated Security=True" 
 providerName="System.Data.SqlClient"/> 
  </connectionStrings>

HomeController:

   BookContext db = new BookContext();
    public ActionResult Index()
    {
        return View(db.Books);
    }
    protected override void Dispose(bool disposing)
    {
        db.Dispose();
        base.Dispose(disposing);
    }

BookContext:

 public class BookContext : DbContext
{
    public BookContext() : base("DefaultConnection")
    { }
    public DbSet<Book> Books { get; set; }
    public DbSet<Purchase> Purchases { get; set; }
}

В Бд есть данные:

Возможно дело в том, что после запуска база данных выключена ? :

Answer 1

Поменяйте название подключения согласно файлу Web.config

public BookContext() : base("name=BookContext") { }
Answer 2

Передай объекты в ViewBag

public class HomeController : Controller
    {
        // создаем контекст данных
        BookContext db = new BookContext();
        public ActionResult Index()
        {
            // получаем из бд все объекты Book
            IEnumerable<Book> books = db.Books;
            // передаем все объекты в динамическое свойство Books в ViewBag
            ViewBag.Books = books;
            // возвращаем представление
            return View();
        }
    }

А потом выводи на странице

@foreach (var b in ViewBag.Books)
        {
        <tr>
            <td><p>@b.Name</p></td>
            <td><p>@b.Author</p></td>
            <td><p>@b.Price</p></td>
            <td><p><a href="/Home/Buy/@b.Id">Купить</a></p></td>
        </tr>
        }

И еще у тебя должен быть класс Book

public class Book
{
    // ID книги
    public int Id { get; set; }
    // название книги
    public string Name { get; set; }
    // автор книги
    public string Author { get; set; }
    // цена
    public int Price { get; set; }
}
READ ALSO
После анимации в WPF C# некорректно работает GridSplitter

После анимации в WPF C# некорректно работает GridSplitter

В программе при нажатии соответствующей кнопки происходит скрытие столбца, при повторном нажатии - раскрываетсяДо скрытия/раскрытия с помощью...

542
Упростить код изменения видимости

Упростить код изменения видимости

Есть форма с текстбоксами nomer1, nomer2 и тд

453
DataGrid (C#) Дублирование столбцов, update

DataGrid (C#) Дублирование столбцов, update

Здравствуйте, пишу приложение на WPFПытаюсь добавлять в DataGrid записи, но они дублируют столбцы и сама таблица после их добавления не обновляется,...

437
Изменение значения ProgressBar на C# WPF

Изменение значения ProgressBar на C# WPF

У меня есть приложение на wpf, которое достаточно долго пингует ряд ip-шниковЗахотелось установить ProgressBar

547