Asp.net mvc 找到多个与URL错误MVC 5匹配的控制器类型

Asp.net mvc 找到多个与URL错误MVC 5匹配的控制器类型,asp.net-mvc,asp.net-mvc-4,controller,routes,attributes,Asp.net Mvc,Asp.net Mvc 4,Controller,Routes,Attributes,在我提问之前,我应该这样说;所有路线都已通过Route属性添加到控制器中。它不是或的复制品。因为在这种情况下,ID参数(整型)被传递给两个不同的函数 有两个类和两个函数在不同的类中分开HomeController.AppPage和BlogController.Detail导航此页面时,本地主机:11111/Blog/this is Blog title/1的功能冲突。我想运行第二个,如下所述 在第二种情况下,Blogsegment必须在路由开始时保持稳定。我不想改变或删除 谢谢你的建议和帮助 第

在我提问之前,我应该这样说;所有路线都已通过
Route
属性添加到控制器中。它不是或的复制品。因为在这种情况下,ID参数(整型)被传递给两个不同的函数

有两个类和两个函数在不同的类中分开<代码>HomeController.AppPage和
BlogController.Detail
导航此页面时,本地主机:11111/Blog/this is Blog title/1的功能冲突。我想运行第二个,如下所述

在第二种情况下,
Blog
segment必须在路由开始时保持稳定。我不想改变或删除

谢谢你的建议和帮助

第一个

public class HomeController : BaseController
    [Route("{title}/{ID}")]              //  -> No problem with this
    [Route("{title1}/{title2}/{ID}")]    //  -> Conflicting attribute
    public ActionResult AppPage(int ID)
    {
        // Some Code
        return View();
    }
}
public class BlogController : BaseController
    [Route("Blog/{title}/{ID}")]              //  -> Conflicting attribute
    public ActionResult Detail(int ID)
    {
        // Some Code
        return View();
    }
}
第二个

public class HomeController : BaseController
    [Route("{title}/{ID}")]              //  -> No problem with this
    [Route("{title1}/{title2}/{ID}")]    //  -> Conflicting attribute
    public ActionResult AppPage(int ID)
    {
        // Some Code
        return View();
    }
}
public class BlogController : BaseController
    [Route("Blog/{title}/{ID}")]              //  -> Conflicting attribute
    public ActionResult Detail(int ID)
    {
        // Some Code
        return View();
    }
}

尝试向route属性添加order参数,以便博客路由优先于标题1路由

默认情况下,所有已定义的管线的订单值均为0,管线从最低到最高进行处理

public class HomeController : BaseController
    [Route("{title}/{ID}")]              //  -> No problem with this
    [Route("{title1}/{title2}/{ID}", Order = 2)]    
    public ActionResult AppPage(int ID)
    {
        // Some Code
        return View();
    }
}

public class BlogController : BaseController
    [Route("Blog/{title}/{ID}", Order = 1)]             
    public ActionResult Detail(int ID)
    {
        // Some Code
        return View();
    }
}
如果这不起作用,您可以在RouteConfig.cs文件中列出它们,并在标题1路由之前写入博客路由

您可以阅读本文了解更多信息


它不起作用。还有两个功能冲突。实际上,我不想在web.config中列出它们。我试着在route.config而不是web.config中编写一个视图引擎,你是说RouteConfig.cs吗?