【问题标题】:.NET Core and Entity Framework.NET Core 和实体框架
【发布时间】:2018-03-17 19:16:35
【问题描述】:

我在阅读一些 microsoft .net 核心文档时偶然发现了这个页面:https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/

以下引用的文字(更具体地说是最后一个要点)是否暗示 MVC 方法不再是推荐的方法?对于基于 MVC 方法的任何开发,这只是微软的事情还是通用的?

本教程教授 ASP.NET Core MVC 和 Entity Framework Core 控制器和视图。 Razor Pages 是 ASP.NET 中的新替代方案 Core 2.0,一种基于页面的编程模型,可用于构建 Web UI 更容易,更高效。我们推荐 Razor Pages 教程 MVC 版本。 Razor 页面教程:

  • 更容易理解。
    • 提供更多 EF Core 最佳实践。
    • 使用更高效的查询。
    • 使用最新的 API 更新。
    • 涵盖更多功能。
    • 是新应用程序开发的首选方法。

【问题讨论】:

  • 这就是微软的工作方式——每次他们抛出新东西时——他们都会告诉你以前所做的一切都是错误的……在过去的 15 年里我已经见过很多次了

标签: asp.net-core .net-core


【解决方案1】:

Razor Pages 仍然是 MVC,它们只是大大简化了您的代码。它不是在一个目录中拥有不同的模型,在另一个目录中拥有控制器,在另一个目录中拥有视图,而是将所有内容放在两个文件中:“视图”(.cshtml)和“控制器/模型”(@ 987654322@)。

如果您查看了足够多的 ASP.NET MVC 应用程序,您很快就会注意到视图与其控制器之间存在 1:1 关系的频率。在大多数情况下,您会发现 Controller 每个 View 包含一个方法,该方法仅包含 return View();。 Razor Pages 有助于解决这个问题。

这不会改变 MVC 的基本价值主张,而且它是明确的关注点分离。它也不是一个非此即彼的命题。您完全可以在同一个 Web 应用中混合使用传统的 MVC 结构和 Razor Pages。

【讨论】:

  • 太棒了。您确认了我实际注意到的 .cs 几乎充当 .cshtml 的控制器。在保持清洁方面,我也很喜欢这种新设置。也许随着时间的推移和更多的项目,我会看到选择传统方法可能有意义的案例。
  • 就混合这两种方法而言,这将如何工作?我问是因为使视图成为剃须刀页面的@page 指令也决定了路由。您是否会通过例如使用 asp-controller="Home" asp-action="Index" 语法来绕过它,即使在剃须刀页面中也是如此?
猜你喜欢
  • 2017-12-15
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 2010-10-24
  • 2014-07-21
相关资源
最近更新 更多