Ber*_* IT 11 asp.net-mvc asp.net-web-api asp.net-core
当使用 .NET 核心 Web API 的脚手架时,它包括:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
Run Code Online (Sandbox Code Playgroud)
在ConfigureServices方法和
app.UseMvc();
Run Code Online (Sandbox Code Playgroud)
在配置方法中。
为什么是这样?Web API 不需要“模型视图控制器”。它可能只需要“模型”和“控制器”。我将 MVC 与 Views 和 Razor 联系在一起。这些声明可以省略吗?
如果我们查看内部扩展的源代码,AddMvc我们可以清楚地看到这些:
public static IMvcBuilder AddMvc(this IServiceCollection services)
{
if (services == null)
{
throw new ArgumentNullException(nameof(services));
}
var builder = services.AddMvcCore();
builder.AddApiExplorer();
builder.AddAuthorization();
AddDefaultFrameworkParts(builder.PartManager);
// Order added affects options setup order
// Default framework order
builder.AddFormatterMappings();
builder.AddViews();
builder.AddRazorViewEngine();
builder.AddRazorPages();
builder.AddCacheTagHelper();
// +1 order
builder.AddDataAnnotations(); // +1 order
// +10 order
builder.AddJsonFormatters();
builder.AddCors();
return new MvcBuilder(builder.Services, builder.PartManager);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,对于 Web API,您可能需要AddJSONFormatters()和AddCors()。但是,您还需要AddMvcCore(). 这包括路由、属性、过滤器、结果执行器、模型绑定器、控制器等。
参考https://codingblast.com/using-web-api-asp-net-core-without-mvc-specific-stuff/
| 归档时间: |
|
| 查看次数: |
6415 次 |
| 最近记录: |