Учебники

ASP.NET Core — Просмотров

В приложении ASP.NET Core MVC нет ничего похожего на страницу, и оно также не содержит ничего, что непосредственно соответствует странице, когда вы указываете путь в URL. Самая близкая вещь к странице в приложении ASP.NET Core MVC известна как представление.

  • Как вы знаете, в приложении ASP.NET MVC все входящие запросы браузера обрабатываются контроллером, и эти запросы отображаются на действия контроллера.

  • Действие контроллера может возвращать представление или также может выполнять какое-либо другое действие, например перенаправление на другое действие контроллера.

  • В среде MVC наиболее популярным методом создания HTML является использование механизма представления Razor в ASP.NET MVC.

  • Чтобы использовать этот механизм представления, действие контроллера создает объект ViewResult , и ViewResult может содержать имя представления Razor, которое мы хотим использовать.

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

Действие контроллера может возвращать представление или также может выполнять какое-либо другое действие, например перенаправление на другое действие контроллера.

В среде MVC наиболее популярным методом создания HTML является использование механизма представления Razor в ASP.NET MVC.

Чтобы использовать этот механизм представления, действие контроллера создает объект ViewResult , и ViewResult может содержать имя представления Razor, которое мы хотим использовать.

Посмотреть результат

  • Представление будет файлом в файловой системе, и ViewResult может также переносить объект модели к представлению, и представление может использовать этот объект модели при создании HTML.

  • Когда инфраструктура MVC видит, что действие вашего контроллера создает ViewResult, платформа найдет представление в файловой системе, выполнит представление, которое создает HTML, и именно этот HTML-код платформа отправляет обратно клиенту.

Представление будет файлом в файловой системе, и ViewResult может также переносить объект модели к представлению, и представление может использовать этот объект модели при создании HTML.

Когда инфраструктура MVC видит, что действие вашего контроллера создает ViewResult, платформа найдет представление в файловой системе, выполнит представление, которое создает HTML, и именно этот HTML-код платформа отправляет обратно клиенту.

пример

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

using FirstAppDemo.Models; 
using Microsoft.AspNet.Mvc; 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks;  

namespace FirstAppdemo.Controllers { 
   public class HomeController : Controller { 
      public ViewResult Index() { 
         var employee = new Employee { ID = 1, Name = "Mark Upston"}; 
         return View(); 
      } 
   } 
}

Внутри HomeController вместо создания ObjectResult давайте просто вернем то, что возвращает метод View () . Метод View не возвращает ObjectResult. Он создает новый ViewResult, поэтому мы также изменим тип возврата метода Index на ViewResult. Метод View принимает некоторые параметры здесь. Мы вызовем этот метод без каких-либо других параметров. Позвольте нам сохранить ваш файл и обновить ваш браузер.

Результат объекта

Это связано с тем, что MVC-фреймворк должен выйти и найти это представление, но сейчас его нет.

  • Представления по умолчанию в проекте C # ASP.NET — это файлы с расширением * .cshtml, и представления следуют определенному соглашению. По умолчанию все представления находятся в папке представлений в проекте.

  • Расположение представления и имя файла представления будут получены ASP.NET MVC, если вы не предоставите ему никакой дополнительной информации.

  • Если нам нужно отобразить представление из действия Index HomeController, первое место, которое MVC-среда будет искать для этого представления, находится внутри папки Views.

  • Он перейдет в домашнюю папку и затем найдет файл Index.cshtml — имя файла начинается с Index, потому что мы находимся в действии Index.

  • Среда MVC также будет искать в общей папке и представлениях, которые вы помещаете в общую папку, вы можете использовать их в любом месте приложения.

Представления по умолчанию в проекте C # ASP.NET — это файлы с расширением * .cshtml, и представления следуют определенному соглашению. По умолчанию все представления находятся в папке представлений в проекте.

Расположение представления и имя файла представления будут получены ASP.NET MVC, если вы не предоставите ему никакой дополнительной информации.

Если нам нужно отобразить представление из действия Index HomeController, первое место, которое MVC-среда будет искать для этого представления, находится внутри папки Views.

Он перейдет в домашнюю папку и затем найдет файл Index.cshtml — имя файла начинается с Index, потому что мы находимся в действии Index.

Среда MVC также будет искать в общей папке и представлениях, которые вы помещаете в общую папку, вы можете использовать их в любом месте приложения.

Чтобы результаты нашего просмотра работали правильно, давайте создадим этот файл Index.cshtml в правильном месте. Поэтому в нашем проекте нам сначала нужно добавить папку, которая будет содержать все наши представления, и назвать ее Views. Внутри папки Views мы добавим еще одну папку для представлений, связанных с нашим HomeController, и назовем эту папку Home. Щелкните правой кнопкой мыши домашнюю папку и выберите « Добавить» → « Новый элемент» .

Выберите Добавить новый элемент

На левой панели выберите страницу просмотра MVC, введите index.cshtml в поле имени и нажмите кнопку «Добавить».

Давайте добавим следующий код в файл index.cshtml.

<html xmlns = "http://www.w3.org/1999/xhtml"> 
   <head> 
      <title>Home</title> 
   </head>

   <body> 
      <h1>Welcome!</h1> 
      
      <div> 
         This message is from the View...  
      </div> 
   </body> 

</html> 

Теперь вы можете увидеть файл * .cshtml . Он может содержать разметку HTML, и любая разметка, которая у нас есть в этом файле, будет отправлена ​​непосредственно клиенту. Сохраните этот файл и обновите ваш браузер.

Файл CSHTML

Теперь контроллер Home через ViewResult предоставил это представление клиенту и всей разметке, которая находится в этом файле index.cshtml, то есть, что было отправлено клиенту.

Давайте вернемся к HomeController и методу View. Этот метод View имеет несколько различных перегрузок и передает модель сотрудника в качестве параметра.

using FirstAppDemo.Models; 
using Microsoft.AspNet.Mvc; 

using System; 
using System.Collections.Generic; 
using System.Linq;
using System.Threading.Tasks;  

namespace FirstAppdemo.Controllers { 
   public class HomeController : Controller { 
      public ViewResult Index() { 
         var employee = new Employee { ID = 1, Name = "Mark Upston"}; 
         return View(employee); 
      } 
   } 
} 

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

<html xmlns = "http://www.w3.org/1999/xhtml"> 
   <head> 
      <title>Home</title> 
   </head> 
   
   <body> 
      <h1>Welcome!</h1> 
      
      <div> 
         @Model.Name 
      </div> 
   </body> 
</html> 

Когда мы используем знак @ в представлении Razor , движок представления Razor будет обрабатывать все, что вы вводите, как выражение C #. Razor view содержит некоторые встроенные члены, к которым мы можем получить доступ в выражениях C #. Одним из наиболее важных членов является Модель. Когда вы говорите @Model, вы получите объект модели, который вы передали в представление из контроллера. Так что здесь @ Model.Name будет отображать имя сотрудника внутри представления.

Давайте теперь сохраним все файлы. После этого обновите браузер, чтобы увидеть следующий вывод.

Добро пожаловать Марк Апстон

Теперь вы можете увидеть имя сотрудника, как на скриншоте выше.