在ASP中应该使用什么命名空间?. NET核心Web API?



. NET Core Web API项目,我想使用HttpPost,HttpGet,HttpDelete等方法。当我将它添加到动作中时,IntelliSense建议使用以下三个名称空间:

System.Web.Mvc 
System.Web.Http
Microsoft.AspNetCore.Mvc

应该使用哪一个,为什么?

Microsoft.AspNetCore.Mvc是创建Asp. net时的默认名称空间。. NET核心Web API在VisualStudio。不需要将项目依赖于其他名称空间。
你也可以阅读这个文档:
https://learn.microsoft.com/en us/dotnet/api/microsoft.aspnetcore.mvc?view=aspnetcore - 5.0

例如:

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CoreWebApi.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
}
}

Microsoft.AspNet.MvcSystem.Web.Mvc完全相同如果你有视图支持,那么使用Mvc,这将支持Mvc设计模式

如果没有(你只是调用第三方应用程序),那么使用System.Web.Http

看看这个=>System.Web.Http.HttpPut与System.Web.Mvc.HttpPut有什么不同

and this =>对于MVC 4, microsoft . asp.net . MVC和System.Web.Mvc之间有什么区别?