Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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# 为特定名称自定义我的MVC路由_C#_Asp.net Mvc_Routes - Fatal编程技术网

C# 为特定名称自定义我的MVC路由

C# 为特定名称自定义我的MVC路由,c#,asp.net-mvc,routes,C#,Asp.net Mvc,Routes,我有这条路线: 但是我想打个电话 我的控制者是“家”,行动是“索鲁科斯” 我试着使用它,但不起作用 routes.MapRoute( name: "DefaultSolucoes", url: "{categoria}/{page}", defaults: new { controller = "Home", action = "solucoes",

我有这条路线:

但是我想打个电话

我的控制者是“家”,行动是“索鲁科斯”

我试着使用它,但不起作用

  routes.MapRoute(
            name: "DefaultSolucoes",
            url: "{categoria}/{page}",
            defaults: new { 
                controller = "Home", 
                action = "solucoes", 
                categoria = UrlParameter.Optional,
                page = UrlParameter.Optional }
        );

最有可能的情况是,该路线低于默认路线。问题是这两条路线基本上是相同的。因此,当默认路由捕获时,它只查找名为“anycategory”的控制器和名为“anything”的操作。仅仅使用不同的参数名称并不能区分一条路由和另一条路由

您可以将路线移动到默认路线上方,因为路线是自上而下处理的,并且第一场比赛获胜。不过,您基本上已经将此路由设置为默认路由,因为它将捕获所有标准控制器/操作样式的URL。您可以考虑向该路径添加前缀,例如:

url: "categoria/{categoria}/{page}",

因此,您的URL将以
/categoria/any categoria/any thing
的形式出现,您不会有任何冲突。

您如何尝试使用它?我想使用相同的路由/操作,但在SEO优化中使用不同的URL。这是第一个路由吗?啊,很好!这就是现在的工作,克里斯。我只是把上面的默认路线,现在工作完美!谢谢