Visual

05 Controller 的路由.mp4 (74.73MB) MVC 框架可以将传入的 HTTP 请求映射到某个类的特定方法上,在方法内执行任务并返回数据。

我们项目依赖中的 Microsoft.AspNetCore.App 已包含 Microsoft.AspNetCore.Mvc 及其相关的库。

MVC

关注点分离
image.png

  • Controller:接收请求,构建 Model,选择 View
  • Model:携带信息和逻辑
  • View:将 Model 翻译为 HTML 页面

路由 Routing

路由:将 HTTP 请求映射到正确的 Controller 的方法上。

  • Conventional Routing
  • Attribute Routing

Conventional Routing:

  1. app.UseMvc(builder =>
  2. {
  3. builder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}");
  4. });

Attribute Routing:

  1. using Microsoft.AspNetCore.Mvc;
  2. namespace Tutorial.Web.Controllers
  3. {
  4. //[Route("about")]
  5. //[Route("[controller]")] 表示Controller之前的名称
  6. [Route("v2/[controller]/[action]")]
  7. public class AboutController
  8. {
  9. //[Route("")]
  10. public string Me()
  11. {
  12. return "Dave";
  13. }
  14. //[Route("company")]
  15. //[Route("[action]")]
  16. public string Company()
  17. {
  18. return "No Company";
  19. }
  20. }
  21. }

两种路由方式只能选择一种使用。
常见的 MVC 应用通常选择前者,RESTful API 或 Web API 项目通常选择后者。

源码

Tutorial.zip