ASP.NET Core - 视图

ASP.NET Core - 视图 首页 / ASP.Net Core入门教程 / ASP.NET Core - 视图

在ASP.NET Core MVC应用程序中,没有什么比页面更重要的了,当您在URL中指定路径时,它也不包含与页面直接对应的任何内容。与ASP.NET Core MVC应用程序中的页面最接近的内容称为视图(View)。

  • 您知道,在ASP.NET MVC应用程序中,所有传入的浏览器请求均由控制器处理,并且这些请求都映射到控制器操作。

  • 控制器方法可能会返回视图,也可能执行其他某种类型,例如重定向到另一个控制器方法。

  • 使用MVC框架,最流行的HTML创建方法是使用ASP.NET MVC的Razor视图引擎。

  • 要使用此视图引擎,控制器方法将生成一个 ViewResult 对象,并且ViewResult可以带有要使用的Razor视图的名称。

View Result
  • 视图将是文件系统上的文件,并且ViewResult还可以将模型对象携带到视图中,并且视图在创建HTML时可以使用该模型对象。

  • 当MVC框架看到您的控制器方法产生ViewResult时,该框架将在文件系统上找到该视图,执行该视图,从而产生HTML。

现在举一个简单的例子,通过更改HomeController Index方法的实现来理解它如何在应用程序中工作,如以下程序所示。

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方法在此处确实接受一些参数,将在不使用任何其他参数的情况下调用此方法。保存您的文件并刷新您的浏览器。

Object Result

这是因为现在没有视图。

  • 在C#ASP.NET项目中,默认情况下,视图是具有* .cshtml扩展名的文件,并且这些视图遵循特定的约定,位于项目的"Views"文件夹中。

  • 如果需要通过HomeController的Index操作呈现视图,则MVC框架要查找该视图的第一个地方是Views文件夹内。

  • 它将进入Home文件夹,然后查找名为Index.cshtml的文件,该文件名以Index开头,因为处于Index方法中。

  • MVC框架还将在Shared文件夹中查找并放置在Shared文件夹中的视图,您可以在应用程序中的任何位置使用它们。

为了使view输出正常工作,在正确的位置创建此Index.cshtml文件,因此,在项目中,首先需要添加一个包含所有视图的文件夹,并将其命名为Views,在Views文件夹内,将为与HomeController关联的视图添加另一个文件夹,并将该文件夹称为Home,右键单击主文件夹,然后选择Add→New Item。

Select Add New Item

在左窗格中,选择" MVC视图页",然后在名称字段中输入 index.cshtml ,然后单击"Add"按钮。

在index.cshtml文件中添加以下代码。

链接:https://www.learnfk.comhttps://www.learnfk.com/asp.net_core/asp.net-core-views.html

来源:LearnFk无涯教程网

<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 File

现在,Home控制器通过ViewResult将这个视图呈现给客户端以及该index.cshtml文件中的所有标签,即发送给客户端的所有标签。

回到HomeController和View方法,此View方法有几个不同的重载,并将employee模型作为参数传递。

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#表达式。

现在让无涯教程保存所有文件,此后,刷新浏览器以查看以下输出。

Welcome Mark Upston

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

左耳听风 -〔陈皓〕

邱岳的产品实战 -〔邱岳〕

白话法律42讲 -〔周甲徳〕

Android开发高手课 -〔张绍文〕

玩转webpack -〔程柳锋〕

技术面试官识人手册 -〔熊燚(四火)〕

网络排查案例课 -〔杨胜辉〕

快速上手C++数据结构与算法 -〔王健伟〕

手把手带你搭建推荐系统 -〔黄鸿波〕

好记忆不如烂笔头。留下您的足迹吧 :)