Добавление классов метаданных
Добавление атрибутов проверки непосредственно в класс модели работает, если вы не ожидаете изменения базы данных; однако, если ваша база данных изменяется, и вам необходимо восстановить класс модели, вы потеряете все атрибуты, которые вы применили к классу модели. Такой подход может быть очень неэффективным и подвержен утрате важных правил валидации.
Чтобы избежать эту проблему, вы можете добавить класс метаданных, содержащий атрибуты. Когда вы сопоставляете класс модели с классом метаданных, эти атрибуты применяются к модели. В этом подходе класс модели может быть восстановлен без потери всех атрибутов, которые были применены к классу метаданных.
В папке « Модели » добавьте класс с именем Metadata.cs .
Замените код в Metadata.cs следующим кодом.
using System;
using System.ComponentModel.DataAnnotations;
namespace ContosoSite.Models
{
public class StudentMetadata
{
[StringLength(50)]
[Display(Name="Last Name")]
public string LastName;
[StringLength(50)]
[Display(Name="First Name")]
public string FirstName;
[StringLength(50)]
[Display(Name="Middle Name")]
public string MiddleName;
[Display(Name = "Enrollment Date")]
public Nullable<System.DateTime> EnrollmentDate;
}
public class EnrollmentMetadata
{
[Range(0, 4)]
public Nullable<decimal> Grade;
}
}
Эти классы метаданных содержат все атрибуты проверки, которые вы ранее применяли к классам модели. Display атрибут используется для изменения значения, используемого для текстовых меток.
Теперь вы должны связать классы модели с классами метаданных.
|
|
В папке « Модели » добавьте класс с именем PartialClasses.cs .
Замените содержимое файла на следующий код.
using System;
using System.ComponentModel.DataAnnotations;
namespace ContosoSite.Models
{
[MetadataType(typeof(StudentMetadata))]
public partial class Student
{
}
[MetadataType(typeof(EnrollmentMetadata))]
public partial class Enrollment
{
}
}
Обратите внимание, что каждый класс помечен как partial класс, и каждый соответствует имени и пространству имен как класс, который автоматически генерируется. Применяя атрибут метаданных к частичному классу, вы гарантируете, что атрибуты проверки данных будут применены к автоматически генерируемому классу. Эти атрибуты не будут потеряны при регенерации классов модели, потому что атрибут метаданных применяется в частичных классах, которые не восстанавливаются.
Чтобы восстановить автоматически созданные классы, откройте файл ContosoModel.edmx. Еще раз щелкните правой кнопкой мыши по поверхности дизайна и выберите « Обновить модель из базы данных» . Несмотря на то, что вы не изменили базу данных, этот процесс будет восстанавливать классы. На вкладке « Обновить » выберите « Таблицы» и « Готово» .
Сохраните файл ContosoModel.edmx, чтобы применить изменения.
Откройте файл Student.cs или файл Enrollment.cs и обратите внимание, что ранее не были добавлены атрибуты проверки данных, которые вы применяли ранее. Однако запустите приложение и обратите внимание, что правила проверки все еще применяются при вводе данных.
|
|
Добавить ссылки на таблицы
Чтобы облегчить вам переход к новым представлениям, вы можете добавить пару гиперссылок в представления Index для учащихся и учащихся. Откройте файл в Views / Home / Index.cshtml , который является домашней страницей вашего сайта. Добавьте следующий код ниже jumbotron.
CSHTMLкопия
<div>
@Html.ActionLink("List of students", "Index", "Students")<br />
@Html.ActionLink("List of enrollments", "Index", "Enrollments")
</div>
Для метода ActionLink первым параметром является текст, отображаемый в ссылке. Второй параметр - это действие, а третий параметр - имя контроллера. Например, первая ссылка указывает на действие индекса в StudentsController. Из этих значений строится фактическая гиперссылка. Первая ссылка в конечном итоге включает пользователей в файл Index.cshtml в папке Views / Students .
Просмотр таблиц с данными
Вы убедитесь, что код, добавленный в ваш проект, правильно отображает список учеников и позволяет пользователям редактировать, создавать или удалять записи учащихся в базе данных.
|
|
Щелкните правой кнопкой мыши файл Views / Home / Index.cshtml и выберите « Просмотр в браузере» . На этой странице щелкните ссылку для списка учеников.
На этой странице обратите внимание на список учащихся и ссылки для изменения этих данных.
Нажмите ссылку « Создать новую» и укажите некоторые значения для нового ученика.
Нажмите « Создать» и обратите внимание, что новый ученик добавлен в ваш список.
Выберите ссылку « Изменить» и измените некоторые значения для учащегося.
Нажмите « Сохранить» и обратите внимание, что запись студента была изменена.
Наконец, выберите ссылку « Удалить» и подтвердите, что вы хотите удалить запись, нажав кнопку « Удалить» .
Без написания кода вы добавили представления, которые выполняют общие операции с данными в таблице Student.
Возможно, вы заметили, что текстовая метка для поля основана на свойстве базы данных (например, LastName ), которое не обязательно означает, что вы хотите отображать на веб-странице. Например, вы можете предпочесть, чтобы метка была Фамилия . Вы устраните эту проблему с отображением позже в учебнике.
Дата добавления: 2022-01-22; просмотров: 101; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!