ASP.NET MVC - 找到了与URL匹配的多种控制器类型

时间:2018-04-10 18:29:05

标签: asp.net asp.net-mvc asp.net-mvc-routing attributerouting

将ASP.NET MVC 5.2与属性路由一起使用。我在单独的控制器中有2个动作:

public class AccountController
{
   [Route("login")]
   public ActionResult Login()
   {
   }
}

public class HomeController
{
   [Route("{category}")]
   public ActionResult Category(string category)
   {
   }
}

当我运行它时,我收到错误Multiple controller types were found that match the URL. This can happen if attribute routes on multiple controllers match the requested URL.

类别操作中的

category动态参数是在操作中针对DB检查的内容,并且存在许多可能的值,因此我认为我不能使用路径约束来包含所有可能的选项,它也是一个字符串,所以像category:int这样的东西不是一个选项。

我认为我也无法在路由中使用Order,因为这些操作位于不同的控制器中。

我知道我可以将Category行动的路线更改为[Route("category/{category}")],但我宁愿不这样做。对我来说最好的方法是什么,/login/{category}都有效?

0 个答案:

没有答案