MVC路由给对象引用异常

时间:2018-07-06 01:43:50

标签: c# asp.net-mvc .net-core asp.net-mvc-routing asp.net-core-2.1

对于.NET Core 2.1,我具有以下路由设置;

 app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default_id",
                    template: "{controller=Home}/{action=Index}/{id?}");

            });

以及后续控制者;

 public async Task<ActionResult> Index(Guid id = default(Guid)){
 }

如果我喜欢访问

http://localhost.example.com:5002/Users/Index/09e3eca9-6c66-09ed-701e-aa26dfab3dd2?Title=Adam

工作正常,但出现以下错误:

http://localhost.example.com:5002/Users/Index/
  

NullReferenceException:对象引用未设置为的实例   对象。

我的设置无法解决无参数索引操作。

我在这里想念东西吗?

PS:我不想使用Controller / Action属性。如果可能的话,我想在Startup.cs

中解决它

不是答案,但是在搜索时我发现:https://github.com/aspnet/Mvc/issues/7518

似乎问题已解决,但我仍然遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

我在 ASP.Net Core 文档中找不到任何内容,但同时查看ASP.NET Web API 2 Documentation和此Tutorial,我认为您需要使用以下两种方法之一选项:

[Route("Home/Index/{id:Guid?}")]
public async Task<ActionResult> Index(Guid id = default(Guid))
{
}

[Route("Home/Index/{id:Guid=default(Guid)}")]
public async Task<ActionResult> Index(Guid id)
{
}