Создание нового веб-приложения asp. Net 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Создание нового веб-приложения asp. Net



В новом решении или в том же решении, что и проект базы данных, создайте новый проект в Visual Studio и выберите шаблон веб-приложения ASP.NET. Назовите проект ContosoSite.

Нажмите «ОК».

В окне «Новый проект ASP.NET» выберите шаблон MVC. Очистить флажок Узел в облаке. Нажмите «ОК», чтобы создать приложение.

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

Создание базы данных

В обозревателе решений правой кнопкой мыши нажать на папку App_Data и создать новый элемент

Создать базу данных со своим именем

В обозревателе серверов в своей базе данных создать таблицы

Добавьте столбцы в таблицы и определите тип хранимых данных.

Определите первичные и вторичные ключи.

В появившейся надписи подправить названия полей и таблиц

CONSTRAINT [FK_Enrollment_ToTable] FOREIGN KEY ([CourseID]) REFERENCES [Course]([CourseID])

Для полей первичных ключей определите автоинкремент

После того как все таблицы были созданы и все связи были определены переходим к созданию модели данных в приложении.

 

Создание моделей

Теперь вы создадите модели Entity Framework из таблиц базы данных. Эти модели являются классами, которые вы будете использовать для работы с данными. Каждая модель отражает таблицу в базе данных и содержит свойства, соответствующие столбцам в таблице.

Щелкните правой кнопкой мыши папку «Модели» и выберите «Добавить» и «Создать элемент».

В окне «Добавить новый элемент» выберите «Данные» в левой панели и «Модель ADO.NET EDM» из параметров в центральной панели. Назовите новый файл модели ContosoModel.

Нажмите «Добавить».

В Мастере моделей данных сущностей выберите конструктор EF из базы данных.

Нажмите «Далее».

Если у вас есть подключения к базе данных, определенные в вашей среде разработки, вы можете увидеть одно из этих подключений, предварительно выбранных. Однако вы хотите создать новое соединение с базой данных, созданной ранее. Нажмите кнопку «Новое соединение».

Вы можете использовать имя по умолчанию для подключения в файле Web.Config

Нажмите «Далее».

Выберите «Таблицы» для создания моделей для всех трех таблиц.

Нажмите «Готово».

Если вы получили предупреждение о безопасности, выберите «ОК», чтобы продолжить запуск шаблона.

Модели создаются из таблиц базы данных, и отображается диаграмма, показывающая свойства и отношения между таблицами.

Папка «Модели» теперь включает в себя множество новых файлов, связанных с моделями, которые были созданы из базы данных.

ContosoModel.Context.cs файл содержит класс, производный от DbContext класса, а также предоставляет свойство для каждого класса модели, которая соответствует таблице базы данных. В Course.cs, Enrollment.cs и Student.cs файлы содержат классы модели, которые представляют таблицы баз данных. При работе с подклассами вы будете использовать как класс контекста, так и классы модели.

Сейчас необходимо сгенерировать код, который будет обеспечивать стандартные операции с данными для классов модели. Вы добавляете код, добавляя элемент Scaffold. Scaffold будет включать контроллер и представления, соответствующие моделям учащихся и регистрации, которые вы создали в предыдущем разделе. (Необходимо собрать проект, прежде чем добавлять контроллеры!)

Чтобы поддерживать согласованность в вашем проекте, надо добавить новый контроллер в существующую папку Controllers. Щелкните правой кнопкой мыши Контроллеры папку и выберите Добавить – Новый Шаблонный элемент.

Выберите MVC 5 Controller с представлениями, используя параметр Entity Framework. Эта опция генерирует контроллер и представления для обновления, удаления, создания и отображения данных в вашей модели.

Выберите «Студент» для класса модели и выберите ContosoUniversityEntities для класса контекста. Сохраните имя контроллера как StudentsController,

Нажмите «Добавить».

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

По завершении процесса генерации кода вы увидите новый контроллер и представления в своем проекте.

Повторите те же шаги, но добавьте Scaffold для класса регистрации. Когда закончите, у вас должен быть файл EnrollmentsController.cs и папка под заголовками Views named Enrollments с помощью представлений «Создать, удалить, детализировать, редактировать и индексировать».

Добавить столбец

Если вы обновляете структуру таблицы в своей базе данных, вам необходимо убедиться, что ваше изменение распространяется на модели данных, представления и контроллер.

В таблицу Student добавьте столбец с именем MiddleName, который имеет тип NVARCHAR (50), и допускает значения NULL.

Разверните это изменение в своей локальной базе данных. Новое поле добавляется в таблицу. Если вы не видите его в обозревателе объектов SQL Server, нажмите кнопку «Обновить» на панели.

Новый столбец существует в таблице базы данных, но в настоящее время он не существует в классе модели данных. Вы должны обновить модель, чтобы добавить новый столбец. В папке «Модели» откройте файл ContosoModel.edmx, чтобы отобразить диаграмму модели. Обратите внимание, что модель Student не содержит свойства MiddleName. Щелкните правой кнопкой мыши в любом месте проектной поверхности и выберите «Обновить модель из базы данных».

В мастере обновления выберите вкладку «Обновить» и таблицу «Студент».

Нажмите «Готово».

По завершении процесса обновления диаграмма базы данных включает новое свойство MiddleName. Сохраните файл ContosoModel.edmx. Вы должны сохранить этот файл для нового свойства, которое будет распространено в классе Student.cs. Теперь вы обновили базу данных и модель.

Постройте решение.

К сожалению, в представлениях все еще нет нового свойства. Чтобы обновить представления, у вас есть два варианта: вы можете повторно сгенерировать представления, добавив снова шаблоны для класса Student, или вы можете вручную добавить новое свойство к существующим представлениям. В этом уроке вы снова добавите шаблоны, потому что вы не внесли никаких изменений в автоматически создаваемые представления. Вы можете вручную добавить свойство, когда вы внесли изменения в представления, и не хотите терять эти изменения.

Чтобы обеспечить повторное создание представлений, удалите папку «Студенты» в разделе «View» и удалите «StudentsController». Затем щелкните правой кнопкой мыши папку Controllers и добавьте шаблон для модели Student. Опять же, назовите контроллер StudentsController. Выберите ОК.

Представления теперь содержат свойство MiddleName.

Вы можете настроить код в соответствии с конкретными требованиями вашего приложения. В настоящее время ваше приложение не отображает зарегистрированные курсы для выбранного студента. В этом разделе вы добавите зарегистрированные курсы для каждого учащегося в представление Details для учащегося.

Open Students / Details.cshtml и ниже последней вкладки </ dl>, но перед закрывающим тегом </ div> добавьте следующий код.

CSHTMLкопия

<table class="table">

<tr>

<th>

Course Title

</th>

<th>

Grade

</th>

<th>

Credits

</th>

</tr>

 

@foreach (var item in Model.Enrollments)

{

<tr>

<td>

@Html.DisplayFor(modelItem => item.Course.Title)

</td>

<td>

@Html.DisplayFor(modelItem => item.Grade)

</td>

<td>

@Html.DisplayFor(modelItem => item.Course.Credits)

</td>

</tr>

}

</table>

Этот код создает таблицу, которая отображает строку для каждой записи в таблице регистрации для выбранного ученика. Метод Display отображает HTML для объекта (modelItem), который представляет выражение. Вы используете метод Display (а не просто вставляете значение свойства в код), чтобы убедиться, что значение отформатировано правильно в зависимости от его типа и шаблона для этого типа. В этом примере каждое выражение возвращает одно свойство из текущей записи в цикле, а значения - это примитивные типы, которые отображаются как текст.

Перейдите к разделу «Студенты / Индекс» и выберите «Подробности» для одного из учеников. Вы увидите, что зарегистрированные курсы включены в представление.

чтобы ограничить длину значений, предоставленных для свойств FirstName, LastName и MiddleName. В базе данных эти значения ограничены 50 символами; однако в вашем веб-приложении ограничение персонажа в настоящее время не применяется. Если пользователь предоставляет более 50 символов для одного из этих значений, страница будет сбой при попытке сохранить значение в базе данных. Вы также ограничите класс до значений от 0 до 4.

Откройте файл Student.cs в папке «Модели». Добавьте в класс следующий выделенный код.

C #копия

namespace ContosoSite.Models

{

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

 

public partial class Student

{

public Student()

{

this.Enrollments = new HashSet<Enrollment>();

}

 

public int StudentID { get; set; }

[StringLength(50)]

public string LastName { get; set; }

[StringLength(50)]

public string FirstName { get; set; }

public Nullable<System.DateTime> EnrollmentDate { get; set; }

[StringLength(50)]

public string MiddleName { get; set; }

 

public virtual ICollection<Enrollment> Enrollments { get; set; }

}

}

В Enrollment.cs добавьте следующий выделенный код.

C #копия

namespace ContosoSite.Models

{

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

 

public partial class Enrollment

{

public int EnrollmentID { get; set; }

[Range(0, 4)]

public Nullable<decimal> Grade { get; set; }

public int CourseID { get; set; }

public int StudentID { get; set; }

 

public virtual Course Course { get; set; }

public virtual Student Student { get; set; }

}

}

Постройте решение.

Перейдите на страницу для редактирования или создания ученика. Если вы попытаетесь ввести более 50 символов, появится сообщение об ошибке.

Перейдите на страницу для редактирования заявок и попытайтесь присвоить оценку выше 4.

Полный список аннотаций проверки данных, которые вы можете применить к свойствам и классам, см. В разделе System.ComponentModel.DataAnnotations.



Поделиться:


Последнее изменение этой страницы: 2019-04-27; просмотров: 297; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.192.3 (0.036 с.)