Главная страница   /   5.1. Создание проекта примера (ASP.NET MVC 4

ASP.NET MVC 4

ASP.NET MVC 4

Адам Фриман

5.1. Создание проекта примера

Для демонстрации возможностей и синтаксиса Razor мы создали новый проект Visual Studio, используя шаблон ASP.NET MVC 4 Web Application и выбрав вариант Empty.

Определение модели

Мы будем использовать очень простую доменную модель и воспроизведем тот же доменный класс Product, который мы использовали в первой части книги. Добавьте файл класса Product.cs в папку Models и убедитесь, что содержание соответствует тому, что показано в листинге 5-1.

Листинг 5-1: Создание простого класса доменной модели
namespace Razor.Models
{
	public class Product
	{
		public int ProductID { get; set; }
		public string Name { get; set; }
		public string Description { get; set; }
		public decimal Price { get; set; }
		public string Category { set; get; }
	}
}

Определение контроллера

Чтобы добавить контроллер в проект, щелкните правой кнопкой мыши в вашем проекте по папке Controllers и выберите Add, а затем Controller, из всплывающего меню. Назовите его HomeController и выберите Empty MVC Controller в опции Template, как показано на рисунке 5-1.

Рисунок 5-1: Создание ProductController

Нажмите кнопку Add, чтобы создать класс Controller, а затем измените содержимое файла, чтобы оно соответствовало листингу 5-2.

Листинг 5-2: Простой контроллер
using Razor.Models;
using System;
using System.Collections.Generic;
using System.Web.Mvc;
namespace Razor.Controllers
{
	public class HomeController : Controller
	{
		Product myProduct = new Product
		{
			ProductID = 1,
			Name = "Kayak",
			Description = "A boat for one person",
			Category = "Watersports",
			Price = 275M
		};
		public ActionResult Index()
		{
			return View(myProduct);
		}
	}
}

Мы определили метод действия Index, в котором мы создаем и заполняем свойства объекта Product. Мы передаем Product методу View, поэтому он используется в качестве модели, когда воспроизводится представление. Мы не указываем имя файла представления, когда вызываем метод View, поэтому для метода действия будет использоваться представление по умолчанию (мы создадим файл представления следующим).

Создание представления

Чтобы создать представление, щелкните правой кнопкой мыши по методу Index класса HomeController и выберите Add View. Проверьте опцию, что создается строго типизированное представление и выберите класс из раскрывающегося списка Product, как показано на рисунке 5-2.

Примечание

Если вы не видите в раскрывающемся списке класс Product, скомпилируйте ваш проект и попробуйте создать представление еще раз. Visual Studio не распознает классы модели, пока они не скомпилированы.

Рисунок 5-2: Добавление представления

Убедитесь, что отключена опция для использования макета и мастер страницы (use a layout or master page), как показано на рисунке. Нажмите кнопку Add, чтобы создать представление, которое появится в папке Views/Home и будет называться Index.cshtml. Файл представления будет открыт для редактирования, и вы увидите, что это тот же базовый файл представления, который мы создавали в предыдущей главе, как показано в листинге 5-3.

Листинг 5-3: Простое Razor представление
@model Razor.Models.Product
@{
	Layout = null;
}
<!DOCTYPE html>
<html>
<head>
	<meta name="viewport" content="width=device-width" />
	<title>Index</title>
</head>
<body>
	<div>
	</div>
</body>
</html>

В следующих разделах мы рассмотрим различные аспекты Razor представления и покажем некоторые вещи, которые вы можете сделать с ним.

При изучении Razor важно понимать, что представления существуют, чтобы выразить одну или несколько частей модели пользователю: а это обозначает генерирование HTML, который отображает данные, полученные от одного или нескольких объектов. Если вы запомните, что мы всегда пытаемся выстроить HTML страницу, которая может быть отправлена клиенту, то все, что делает Razor, будет иметь для вас смысл.

Примечание

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