Учебники

ASP.NET MVC — модель данных

В этой главе мы обсудим построение моделей в приложении ASP.NET MVC Framework. Модель хранит данные, которые извлекаются в соответствии с командами контроллера и отображаются в представлении.

Модель — это набор классов, в которых вы будете работать с данными и бизнес-логикой. Следовательно, в основном модели представляют собой контейнеры для конкретных бизнес-доменов. Он используется для взаимодействия с базой данных. Его также можно использовать для манипулирования данными для реализации бизнес-логики.

Давайте рассмотрим простой пример View, создав новый проект ASP.Net MVC.

Шаг 1 — Откройте Visual Studio. Нажмите Файл → Создать → Пункт меню Проект.

Откроется новое диалоговое окно проекта.

Откройте Visual Studio

Шаг 2 — На левой панели выберите Шаблоны → Visual C # → Интернет.

Шаг 3 — В средней панели выберите Веб-приложение ASP.NET.

Шаг 4 — Введите имя проекта «MVCSimpleApp» в поле «Имя» и нажмите «ОК», чтобы продолжить. Вы увидите следующее диалоговое окно, в котором вас попросят установить начальный контент для проекта ASP.NET.

MVCSimpleApp

Шаг 5. Чтобы упростить задачу, выберите опцию «Очистить» и установите флажок MVC в разделе «Добавить папки и основные ссылки для» и нажмите кнопку «ОК».

Это создаст базовый проект MVC с минимальным предопределенным содержанием.

Нам нужно добавить контроллер сейчас.

Шаг 6 — Щелкните правой кнопкой мыши папку контроллера в обозревателе решений и выберите «Добавить» → «Контроллер».

Появится диалоговое окно Add Scaffold.

Щелкните правой кнопкой мыши папку контроллера

Шаг 7 — Выберите контроллер MVC 5 — с опцией действий чтения / записи. Этот шаблон создаст метод Index с действием по умолчанию для Controller. Это также перечислит другие методы, такие как Edit / Delete / Create.

Шаг 8 — Нажмите кнопку «Добавить», и появится диалоговое окно «Добавить контроллер».

Добавить сотрудник Контроллер

Шаг 9 — Установите имя EmployeeController и нажмите кнопку «Добавить».

Шаг 10 — Вы увидите новый C # -файл EmployeeController.cs в папке Controllers, который открыт для редактирования в Visual Studio с некоторыми действиями по умолчанию.

using System;
using System.Collections.Generic;
using System.Linq;

using System.Web;
using System.Web.Mvc;

namespace MVCSimpleApp.Controllers {
   public class EmployeeController : Controller{
      // GET: Employee
      public ActionResult Index(){
         return View();
      }
		
      // GET: Employee/Details/5
      public ActionResult Details(int id){
         return View();
      }
		
      // GET: Employee/Create
      public ActionResult Create(){
         return View();
      }
		
      // POST: Employee/Create
      [HttpPost]
      public ActionResult Create(FormCollection collection){
         try{
            // TODO: Add insert logic here
            return RedirectToAction("Index");
         }catch{
            return View();
         }
      }
		
      // GET: Employee/Edit/5
      public ActionResult Edit(int id){
         return View();
      }
		
      // POST: Employee/Edit/5
      [HttpPost]
      public ActionResult Edit(int id, FormCollection collection){
         try{
            // TODO: Add update logic here
            return RedirectToAction("Index");
         }catch{
            return View();
         }
      }
		
      // GET: Employee/Delete/5
      public ActionResult Delete(int id){
         return View();
      }
		
      // POST: Employee/Delete/5
      [HttpPost]
      public ActionResult Delete(int id, FormCollection collection){
         try{
            // TODO: Add delete logic here
            return RedirectToAction("Index");
         }catch{
            return View();
         }
      }
   }
}

Давайте добавим модель.

Шаг 11 — Щелкните правой кнопкой мыши папку «Модели» в обозревателе решений и выберите «Добавить» → «Класс».

Щелкните правой кнопкой мыши папку «Модели»

Вы увидите диалоговое окно Add New Item.

Диалог добавления нового элемента

Шаг 12 — Выберите Class в средней панели и введите Employee.cs в поле имени.

Шаг 13 — Добавьте некоторые свойства в класс Employee, используя следующий код.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MVCSimpleApp.Models {
   public class Employee{
      public int ID { get; set; }
      public string Name { get; set; }
      public DateTime JoiningDate { get; set; }
      public int Age { get; set; }
   }
}

Давайте обновим файл EmployeeController.cs, добавив еще один метод, который будет возвращать список сотрудников.

[NonAction]
public List<Employee> GetEmployeeList(){
   return new List<Employee>{
      new Employee{
         ID = 1,
         Name = "Allan",
         JoiningDate = DateTime.Parse(DateTime.Today.ToString()),
         Age = 23
      },
		
      new Employee{
         ID = 2,
         Name = "Carson",
         JoiningDate = DateTime.Parse(DateTime.Today.ToString()),
         Age = 45
      },
		
      new Employee{
         ID = 3,
         Name = "Carson",
         JoiningDate = DateTime.Parse(DateTime.Today.ToString()),
         Age = 37
      },
		
      new Employee{
         ID = 4,
         Name = "Laura",
         JoiningDate = DateTime.Parse(DateTime.Today.ToString()),
         Age = 26
      },
   };
}

Шаг 14 — Обновите метод действия индекса, как показано в следующем коде.

public ActionResult Index(){
   var employees = from e in GetEmployeeList()
   orderby e.ID
   select e;
   return View(employees);
}

Шаг 15 — Запустите это приложение и добавьте / employee к URL-адресу в браузере и нажмите Enter. Вы увидите следующий вывод.

Не удается найти индексное представление

Как видно на скриншоте выше, есть ошибка, и эта ошибка на самом деле довольно описательная, которая говорит нам, что она не может найти представление индекса.

Шаг 16 — Следовательно, чтобы добавить представление, щелкните правой кнопкой мыши внутри действия Index и выберите Add view.

Щелкните правой кнопкой мыши Действие индекса

Откроется диалоговое окно «Добавить вид» и будет добавлено имя по умолчанию.

Добавить имя по умолчанию

Шаг 17 — Выберите «Список» из раскрывающегося списка «Шаблон» и «Сотрудник в модели», а также снимите флажок «Использовать страницу макета» и нажмите кнопку «Добавить».

Это добавит некоторый код по умолчанию для вас в этом представлении.

@model IEnumerable<MVCSimpleApp.Models.Employee>
@{
   Layout = null;
}

<!DOCTYPE html>
<html>
   <head>
      <meta name = "viewport" content = "width = device-width" />
      <title>Index</title>
   </head>
	
   <body>
      <p>@Html.ActionLink("Create New", "Create")</p>
         <table class = "table">
         <tr>
            <th>
               @Html.DisplayNameFor(model => model.Name)
            </th>
				
            <th>
               @Html.DisplayNameFor(model => model.JoiningDate)
            </th>
				
            <th>
               @Html.DisplayNameFor(model => model.Age)
            </th>
				
            <th></th>
         </tr>
			
         @foreach (var item in Model) {
            <tr>
               <td>
                  @Html.DisplayFor(modelItem => item.Name)
               </td>
					
               <td>
                  @Html.DisplayFor(modelItem => item.JoiningDate)
               </td>
					
               <td>
                  @Html.DisplayFor(modelItem => item.Age)
               </td>
					
               <td>
                  @Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
                  @Html.ActionLink("Details", "Details", new { id = item.ID }) |
                  @Html.ActionLink("Delete", "Delete", new { id = item.ID })
               </td>
					
            </tr>
         }
			
      </table>
   </body>
</html>

Шаг 18 — Запустите это приложение, и вы получите следующий вывод.

Список сотрудников

Список сотрудников будет отображаться.