Добавление и вывод данных

Последнее обновление: 11.04.2022

Продолжим работу с проектом из прошлой темы и определим в контроллере три метода, которые будут добавлять новый объект в базу данных и выводить из нее все объекты:

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using MvcApp.Models;

namespace MvcApp.Controllers
{
    public class HomeController : Controller
    {
        ApplicationContext db;
        public HomeController(ApplicationContext context)
        {
            db = context;
        }

        public async Task<IActionResult> Index()
        {
            return View(await db.Users.ToListAsync());
        }
        public IActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public async Task<IActionResult> Create(User user)
        {
            db.Users.Add(user);
            await db.SaveChangesAsync();
            return RedirectToAction("Index");
        }
    }
}

В методе Index() с помощью вызова db.Users.ToListAsnc() мы будем получать объекты из бд, создавать из них список и передавать в представление.

А в post-методе Create() при помощи вызова db.Users.Add() для данных из объекта user формируется sql-выражение INSERT, а вызов db.SaveChangesAsync() выполняет это выражение, тем самым добавляя данные в базу данных.

Далее для хранения представлений добавим в проект папку Views, в нее - папку Home. Затем в папку Views/Home добавим новое представление Create.cshtml:

@model MvcApp.Models.User

<h2>Добавление пользователя</h2>
<form asp-action="create" asp-controller="home">
    <p>
        <label asp-for="Name">Имя</label><br />
        <input type="text" asp-for="Name" />
    </p>
    <p>
        <label asp-for="Age">Возраст</label><br />
        <input type="number" asp-for="Age" />
    </p>
    <p>
        <input type="submit" value="Отправить" />
    </p>
</form>

И также добавим в папку Views/Home представление Index.cshtml, которое будет отвечать за вывод объектов:

@model IEnumerable<MvcApp.Models.User>

<h2>Список пользователей</h2>
<p><a asp-action="Create">Добавить пользователя</a></p>
<table class="table">
     <tr><th>Имя</th><th>Возраст</th></tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Name</td>
            <td>@item.Age</td>
        </tr>
    }
</table>

И также добавим в папку Views/Home новое представление _ViewImports.cshtml:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

Оно будет подключать tag-хелперы в представления.

Итоговая структура проекта:

Работа с данными в Entity Framework в ASP.NET Core MVC и C#

Запустим приложение и обратимся к методу Create:

Добавление данных в Entity Framework в ASP.NET Core MVC и C#

Введем в форму какие-либо данные и нажмем на копку:

Получение данных их базы данных в Entity Framework в ASP.NET Core MVC и C#

После выполнения операций с данными мы можем найти автоматически сгенерированную базу данных в окне SQL Server Object Explorer и посмотреть все те данные, которые она содержит:

просмотр базы данных MS SQL Server в Entity Framework в ASP.NET Core MVC и C#
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850