ASP.NET CoreMVC 中的强类型视图
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>
强类型视图优点
与ViewData和ViewBag不同,强类型视图提供编译时类型检查和智能提示。 通过智能提示支持,我们可以提高工作效率,错误拼写的几率几乎为零。 如果我们确实犯了任何错误,我们将在编译时看到错误,而不是在运行时才看到他们。
因此,建议始终使用强类型视图将数据从控制器传递到视图。
有关的 PageTitle 什么
在我们的例子中,我们仍然使用 ViewBag 将 PageTitle 从控制器到视图。 我们为何没有使用强类型视图来传递 PageTitile。 这个是好问题,我们可以使用一个名为 ViewModel 的视图特定模型来做到。
下一个视频: ASP.NET Core MVC 中的 ViewModel
文章说明
如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com 保留版权
感谢您对我的支持