Mon*_*mer 55 c# asp.net-core-mvc
我正在从一本书中学习ASP.NET Core MVC,有问题的代码片段如下:
// CHAPTER 4 - ESSENTIAL C# FEATURES
namespace LanguageFeatures {
public class Startup {
public void ConfigureServices(IServiceCollection services) {
services.AddMvc();
}
// etc.
Run Code Online (Sandbox Code Playgroud)
因为这本书是关于ASP.NET核心MVC而不是ASP.NET MVC,我认为我必须使用AddMvcCore()而不是AddMvc()如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore(); // as opposed to:
//services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)
我在这里做的是正确的吗?
tra*_*r0x 68
看一下ASP.NET Core GitHub repo上的MvcServiceCollectionExtensions.cs类:
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.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)
AddMvcCore()并AddMvc()返回一个IMvcBuilder可用于进一步配置MVC服务的.
AddMvcCore()顾名思义,它只添加核心组件,要求您自己添加任何其他中间件(项目所需).
AddMvc()内部调用AddMvcCore()并添加其他中间件,如Razor视图引擎,JSON格式化程序,CORS等.
现在,我会按照你的教程建议并坚持下去AddMvc().
| 归档时间: |
|
| 查看次数: |
11065 次 |
| 最近记录: |