是否可以使用ODATA配置多个路由

是否可以使用ODATA配置多个路由,odata,asp.net-core-2.0,asp.net-core-webapi,Odata,Asp.net Core 2.0,Asp.net Core Webapi,我创建了一个包含MVC和WebAPI的项目 有一个名为HomeController的MVC控制器,它只包含一个名为Index的操作。 此外,还有一个名为ValuesController的API控制器 没有OData,一切都很好,我可以同时访问和成功访问 然而,在我更改了一些代码以支持OData之后,我无法访问。以下是相关代码: //startup.cs public void配置服务(IServiceCollection服务){ services.AddDbContext(选项=> { 选项。使

我创建了一个包含MVC和WebAPI的项目

有一个名为HomeController的MVC控制器,它只包含一个名为Index的操作。 此外,还有一个名为ValuesController的API控制器

没有OData,一切都很好,我可以同时访问和成功访问

然而,在我更改了一些代码以支持OData之后,我无法访问。以下是相关代码:

//startup.cs
public void配置服务(IServiceCollection服务){
services.AddDbContext(选项=>
{
选项。使用MemoryDatabase(“InMemoryDb”);
});
//添加OData中间件。
services.AddOData();
services.AddMvc();
}
public void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、IServiceProvider提供程序){
if(env.IsDevelopment()){
app.UseDeveloperExceptionPage();
}
//向OData添加模型类
var builder=新ODataConventionModelBuilder(提供商);
builder.EntitySet(“值”);
builder.EntityType().Filter(queryoptionset.Allowed).OrderBy(queryoptionset.Allowed);
//启用OData路由。
app.UseMvc(routebuilder=>
{
routebuilder.MapODataServiceRoute(“odata”、“api”、builder.getedModel());
routebuilder.MapRoute(
名称:“默认”,
模板:“{controller=Home}/{action=Index}/{id?}”);
});
}
如您所见,有多条路线,但默认路线似乎从未使用过。

我仍然可以访问,但如果我访问,页面将显示错误:

处理请求时发生未处理的异常。 ArgumentNullException:值不能为null。 参数名称:routeName Microsoft.AspNet.OData.Extensions.HttpRequestExtensions.CreateRequestScope(HttpRequest请求,字符串routeName)