标签 TODO 下的文章

Controller上添加特性 [Route("/api/[controller]")],自动对应其到方法。
若有多于一个方法,则需要在方法上添加 Route 特性覆盖类特效独立映射,或者在路由中添加'[action]'映射到方法名,也可以在Http方法特性上独立独立映射,如[HttpGet('121')]映射到'类path/Get/123',必须所有public方法都有路由。

Route可以{}传参,若方法有参数,则会要求参数,若{}中有参数,则必填(参数名需相同,若不同则仅方法参数能拿到),由此可实现伪静态,。

所有公开Action必须有路由,否则编译报错。(由ApiController实现)

ApiCOntroller实现:

  • 属性路由要求
  • 自动Http400响应
  • 绑定源参数推理
  • Multipart/form-data请求推理(验证数据类型)
  • 错误状态代码的问题详细信息

Controller下:

若方法为

public IActionResult method(){
  return View();
}

则会生成并返回 对应的View视图;

MVC 与 WebApi的区别:
mvc:
controller是实现Controller(继承自ContollerBase);
有添加ControllerWithViews 服务;
有Route;
能够使用Razor引擎(Cshtml)
WebApi:
Controller 继承 ControllerBase;
只能使用普通web调用接口(ajax,axios,fetch);
有swagger;