我正在按照本教程创建ASP.NET Core Web API,并且在添加控制器的部分中,该教程提供了用于替换控制器模板代码的代码。真正引起我注意的一件事是,在模板代码中,我得到了:
TodoController : Controller
Run Code Online (Sandbox Code Playgroud)
然后,在本教程代码中,我应该使用它代替:
[Route("api/[controller]")]
[ApiController]
TodoController : ControllerBase
Run Code Online (Sandbox Code Playgroud)
我非常想知道为什么需要从Web API控制器ControllerBase而不是ControllerWeb API控制器中派生。为什么要这样做?
ASP.NET MVC中控制器的内置基类是什么:
System.Web.Mvc.Controller或System.Web.Mvc.ControllerBase?
在Google上搜索后我不清楚:
在www.ASP.NET上:"控制器是一个派生自System.Web.Mvc.Controller基类的类."
在codeproject上:"抽象的ControllerBase类代表所有MVC控制器的基类."
在MSDN上:"所有控制器的基类是ControllerBase类,它提供了一般的MVC处理.Controller类继承自ControllerBase,是控制器的默认实现."
在Adam Freeman的"Pro ASP.NET MVC 5 Framework"一书中:"在ASP.NET MVC中,控制器只是C#类(通常继承自System.Web.Mvc.Controller,即框架的内置控制器基类). "
谁是对的?"内置基类"在这种情况下究竟意味着什么?"Controller"是内置的基类和"ControllerBase"的???? (什么是正确的措辞?)基类?