ASP.NET  CoreMVC 中的强类型视图

admin
admin
2021-06-03
分享:

本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP)
本文出自《从零开始学 ASP.NET Core 与 EntityFramework Core》目录
视频课程效果更佳:跨平台开发实战掌握 ASP.NET Core 与 EntityFramework Core

在 ASP.NET Core MVC 中创建一个强类型视图

在 ASP.NET Core MVC 中,有三种方法可以将数据从控制器传递到视图 :

  • 使用强类型模型对象。这也称为强类型视图
  • 使用 ViewData
  • 使用 ViewBag

强类型视图 - 控制器代码

将数据从控制器传递到视图的首选方法是使用强类型视图。要创建强类型视图,请在控制器操作方法中将模型对象传递给 View()方法。 请注意,在下面的示例中,我们将Student模型对象传递给 View()方法。

  public ViewResult Details()
        {
            Student model = _studentRepository.GetStudent(1);

            ViewBag.PageTitle = "Student Details";

            return View(model);
        }

强类型视图 - 视图代码

要创建强类型视图,请使用@model 指令在视图中指定模型类型。

在下面的示例中,我们告诉视图它将使用 StudentManagement.Models。使用@model 指令将 Student 对象作为模型 。

请注意,在指令(@model )中,m是小写的。

要访问模型对象属性,我们使用 @Model 。

在 @Model 中,M是大写的。

在下面的示例中,访问 Student 对象属性,如我们正在使用的姓名,邮箱和主修科目名称,对应@Model .Name, @Model .Email 和 @Model .Major。

@model StudentManagement.Model.Student
<html>
  <head>
    <title></title>
  </head>
  <body>
    <h3>@ViewBag.PageTitle</h3>
    <div>
      姓名 : @Model.Name
    </div>
    <div>
      邮箱 : @Model.Email
    </div>
    <div>
     主修科目 : @Model.Major
    </div>
  </body>
</html>

强类型视图优点

ViewDataViewBag不同,强类型视图提供编译时类型检查和智能提示。 通过智能提示支持,我们可以提高工作效率,错误拼写的几率几乎为零。 如果我们确实犯了任何错误,我们将在编译时看到错误,而不是在运行时才看到他们。

因此,建议始终使用强类型视图将数据从控制器传递到视图。

有关的 PageTitle 什么

在我们的例子中,我们仍然使用 ViewBag 将 PageTitle 从控制器到视图。 我们为何没有使用强类型视图来传递 PageTitile。 这个是好问题,我们可以使用一个名为 ViewModel 的视图特定模型来做到。

下一个视频: ASP.NET Core MVC 中的 ViewModel

文章说明

如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com 保留版权

感谢您对我的支持

关注微信公众号:角落的白板报

公众号:角落的白板报