将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}
都有效?