[英]If I set default route and attribute routing to same controller in mvc5 then conventional routing is not working
Controller
[HttpGet]
[Route("find-a-doctor")]
public ActionResult FindADoctor()
{
ViewData["sList"] = specialities ;
return View();
}
路由配置
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "UserPanelFinADoctor", action = "FindADoctor" },
namespaces: new string[] { "InstacareClone.Controllers" }
);
}
我對此進行了研究,並在 microsot docs 上找到了這個。
動作要么是傳統路由,要么是屬性路由。 在 controller 上放置路由或操作使其屬性路由。 定義屬性路由的動作不能通過常規路由到達,反之亦然。 controller 上的任何路由屬性都會使 controller 屬性中的所有操作都被路由。
所以在你的例子中。因為你已經在基於屬性的路由下注冊了你的動作的路由。 約定路由不起作用。 應該使用其中之一,而不是兩者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.