我一直在玩ASP.NET MVC 4 beta,我现在看到两种类型的控制器:ApiController和Controller.
我对可以选择特定控制器的情况感到困惑.
例如:如果我想返回一个视图,那么我要使用ApiController还是普通的Controller?我知道WCF Web API现在已与MVC集成.
从现在我们可以使用两个控制器可以有人请指出在哪种情况下去相应的控制器.
我注意到是否使用此属性是一样的。我错了吗?
举个例子:
[Route("[controller]")]
[ApiController]
public class DataTablesController: ControllerBase
{
[HttpGet]
public IActionResult Test()
{
return Ok("test");
}
}
Run Code Online (Sandbox Code Playgroud)
当我删除该[ApiController]属性时什么也没发生。
在微软的文档中,我找到了这样的解释:
指示类型和所有派生类型用于提供 HTTP API 响应。
使用此属性修饰的控制器配置了旨在改善开发人员构建 API 体验的功能和行为。
在程序集中装饰时,程序集中的所有控制器都将被视为具有 API 行为的控制器。
什么是 API 行为?我们为什么要使用它?
c# controller asp.net-apicontroller .net-attributes asp.net-core