在 ASP.NET Core – MVC vs Razor Page 里有提到 MVC. 它算是 WebAPI 的抽象.
但是通常 MVC 指的是比较传统的 Website, WebAPI 则是前后端分离的方案. Razor Page 则是替代 MVC 做 Website 的.
虽然说替代, 但是也不是 100%, 有些场景用 MVC 会比较直观. 这篇就特别来讲一下.
dotnet new mvc -o TestMvc
可以 1 Controller 多个 Action, 每一个 Action 对一个 View, 或者 1 Controller 1 Action 对 1 个 View (看想怎样管理)
找 View 是有 default path 逻辑的, 也可以自定义. 但这里我就不多介绍了. 因为我使用场景很少, 所以都是直接写 path.
return View("~/PathToView/Index.cshtml", viewModel);
Razor Page 的入口是 View .cshtml 然后引入 Model.cs (这个 Model 又包含了 Init 方法, 所以它算是 Model + Controller 概念)
MVC 的入口是 Controller + Action (.cs) 然后通过 ViewModel passing 资料给 View.
Razor Page View = MVC View
Razor Page Model Init = MVC Controller Action
Razor Page Model = MVC ViewModel