对于.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
似乎问题已解决,但我仍然遇到同样的问题。
答案 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)
{
}