C# MVC路由给对象引用异常
对于.NETCore2.1,我设置了以下路由:C# MVC路由给对象引用异常,c#,asp.net-mvc,.net-core,asp.net-mvc-routing,asp.net-core-2.1,C#,Asp.net Mvc,.net Core,Asp.net Mvc Routing,Asp.net Core 2.1,对于.NETCore2.1,我设置了以下路由: app.UseMvc(routes => { routes.MapRoute( name: "default_id", template: "{controller=Home}/{action=Index}/{id?}"); }); 以及跟随控制器 public async T
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/
NullReferenceException:对象引用未设置为
反对
我的安装程序不解析无参数索引操作
我是不是遗漏了什么
PS:我不想使用控制器/动作属性。如果可能的话,我想在Startup.cs
不是答案,但在搜索时我发现:
问题似乎已经解决,但我仍然遇到了同样的问题。我在ASP.Net核心文档中找不到任何内容,但查看此文档,我认为您需要使用以下两个选项之一:
[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)
{
}
[路由(“Home/Index/{id:Guid?}”)]
公共异步任务索引(Guid id=默认值(Guid))
{
}
[路由(“Home/Index/{id:Guid=default(Guid)}”)]
公共异步任务索引(Guid id)
{
}
您的第一条路线将id
参数标记为选项(使用/{id?}
),因此您的第二条路线有点毫无意义-它永远不会有意义executed@StephenMuecke是的,我注意到了。我只是尝试一些随机的东西来让它工作,然后从代码中复制粘贴。我将删除它。您是否尝试过索引([FromRoute]Guid?id)
。当使用结构作为参数时,最好使用可空版本并选中.HasValue
,而不是使用default(T)
。
[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)
{
}