Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC属性路由:特定控制器上的NullReferenceException_C#_Asp.net Mvc_Attributerouting - Fatal编程技术网

C# ASP.NET MVC属性路由:特定控制器上的NullReferenceException

C# ASP.NET MVC属性路由:特定控制器上的NullReferenceException,c#,asp.net-mvc,attributerouting,C#,Asp.net Mvc,Attributerouting,我正在处理一个MVC项目,其中有几个控制器用于使用默认RouteConfig进行路由,即“{controller}/{action}/{id}”。 现在,项目负责人希望实现自定义管线。我决定使用属性路由,因为我在另一个只有一个控制器的小项目上使用了属性路由 我在HomeController和AccountController前面加了前缀,现在所有操作都具有路由属性。这对家庭和账户控制员来说很有效。但我有另一个控制器,我叫PaymentController。不知何故,无法使用属性路由访问此控制器。

我正在处理一个MVC项目,其中有几个控制器用于使用默认RouteConfig进行路由,即
“{controller}/{action}/{id}”
。 现在,项目负责人希望实现自定义管线。我决定使用属性路由,因为我在另一个只有一个控制器的小项目上使用了属性路由

我在HomeController和AccountController前面加了前缀,现在所有操作都具有路由属性。这对家庭和账户控制员来说很有效。但我有另一个控制器,我叫PaymentController。不知何故,无法使用属性路由访问此控制器。我试着给整个控制器加前缀,但没有加前缀。我认为最奇怪的是,它在
System.Web.Mvc.Routing.DirectRouteCandidate.CreateAmbiguousMatchList
中抛出了一个NullReferenceException

我使用了
routes.mapmvcattributteroutes()。在我的支付控制器中添加属性之前,默认路由也可以正常工作。
我还需要配置其他东西吗?我忘了什么吗?是否有人在AttributeRouting中遇到过NullReferenceException?有办法调试路由吗?我尝试了一瞥,但由于路由没有成功,它没有显示任何内容

提前感谢你的帮助

编辑: 如上所述,通过默认路由到达控制器,因此控制器中没有nulref。我认为例外情况发生在

'System.Web.Mvc.Routing.DirectRouteCandidate.SelectBestCandidate'

首先要检查是否可以通过常规(非属性)路由到达该控制器。我怀疑无法创建控制器,因为构造控制器时会发生nul ref异常。请在PaymentControllerc上提供路由配置和路由属性是否可以添加异常stacktrace?添加控制器并向我们显示自定义路由当您有两个完全相同的自定义操作路由时,可能会发生这种情况首先检查是否可以使用常规(非属性)路由到达该控制器。我怀疑无法创建控制器,因为构造控制器时会发生nul ref异常。请在PaymentControllerc上提供路由配置和路由属性是否可以添加异常stacktrace?添加控制器并向我们显示自定义路由当您有两个完全相同的自定义操作路由时,可能会发生这种情况相同的