Vij*_*iji 49 c# asp.net-mvc asp.net-web-api .net-core asp.net-core
这是真的ApiController吗," 会在.NET Core中被弃用"吗?我真的需要专业的见解.因为我打算在新项目中使用它.
Hen*_*ema 66
更新ASP.NET Core 2.1
从ASP.NET Core 2.1开始,可以使用一组新类型来创建Web API控制器.您可以使用[ApiController]属性来注释控制器,该属性启用一些新功能,例如自动模型状态验证和绑定源参数推断.有关详细信息,请参阅文档:https://docs.microsoft.com/en-us/aspnet/core/web-api/index?view= aspnetcore-2.1#annotate-class-with-
  apicontrollerattribute.
ApiController由于MVC和WebAPI已在ASP.NET Core中合并,因此确实没有特定的类.但是,ControllerMVC类带来了一些在开发Web API时可能不需要的功能,例如视图和模型绑定.
如果你想要不同的东西,你有两个选择:
使用Microsoft.AspNetCore.Mvc.Core包中的ControllerBase类.
要么
创建ApiController基类.这里的关键是添加[ActionContext]将当前ActionContext实例注入属性的属性:
[Controller]
public abstract class ApiController
{
    [ActionContext]
    public ActionContext ActionContext { get; set; }
}
此外,将该[Controller]属性添加到类中以将其标记为MVC控制器发现的控制器.
在我的"MVC 6中的Web API"博文中查看更多详细信息.
Ris*_*cie 21
该[ApiController]属性实际上已添加回ASP.NET Core 2.1版.
与属性相结合的功能是:
[FromBody],[FromRoute]......明确属性指向文档的链接:
更新
还有一个ControllerBase控制器继承的基类适用于api-controllers,因为它省略了所有与视图相关的功能.
Ral*_*ing 10
在ASP.NET中,核心使用ASP.NET MVC和ASP.NET WepAPI中已知的术语和概念.但基本上它是一个完整的新框架.因此,我们可以简单地忘记几个概念或基类.
ASP.NET MVC和ASP.NET WebApi是两个共存但不同的框架,因此必须通过使用ApiControlleras基类将控制器指定为WebApi控制器.
在ASP.NET Core中,这根本就没有必要了.的Controller基类可以用于从剃刀浏览或JSON返回HTML(与输出格式化XML和其他格式也是可能的)的操作.你甚至不需要Controller基类.甚至可以使用"Plain Old C#Object"作为Controller而不具有继承性.这是一个演示控制器的示例,即使ApiController不在那里,向客户端传递数据的结构方法也是类似的.
public class DemoController : Controller
{       
     public async Task<IActionResult> Action()
     {
         var model = await _someService.GetPreciousData();
         return Ok(model);
     }
 }
正如其他人提到的,ASP.NET Core 是一个全新的网络堆栈,与旧的 ASP.NET MVC 网络堆栈不兼容。这明确反映在它的名称和版本控制中!
ASP.NET Core 和 ASP.NET Core MVC 的版本是 1.0.0,可以非常清楚地说明这种不兼容性。
ASP.NET Core 将 MVC 和 WebApi 合并为一个刚刚调用的 Api。
这就是您可能一直在寻找的东西:
如果您从以前的 ASP.NET MVC 或 ASP.NET WebApi 应用程序迁移,您可能需要导入Microsoft.AspNetCore.Mvc.WebApiCompatShim提供一些兼容性类型的包,这使得从以前的版本迁移更容易。其中包括ApiController在新的 webstack Api 中删除的类和某些属性。
但是,请注意,这只是为了帮助您迁移现有应用程序。当你创建一个新的应用程序时,你不应该使用这个兼容性垫片,而应该使用新的东西。
| 归档时间: | 
 | 
| 查看次数: | 31987 次 | 
| 最近记录: |