我想在MVC應用程序中使用區域,我希望默認路由將被解析到管理區域內的HomeController,但它解析爲根站點中的家庭控制器。 我添加了admin HomeController的命名空間,但它仍然解析爲根HomeController。MVC4使用區域時的默認路由
我的路由配置:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] {"MvcApplicationAreas.Areas.Admin.Controllers"}
);
}
}
管理區域航線
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
的HomeController - 管理區
namespace MvcApplicationAreas.Areas.Admin.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
任何想法,爲什麼它不會妥善解決? 謝謝
你能還份額你的管理HomeController? – neontapir
檢查這個帖子http://stackoverflow.com/questions/2140208/how-to-set-a-default-route-to-an-area-in-mvc –
我看到帖子,但它的MVC2,從Pro MVC4書_「這個改變可以確保主項目中的控制器在解決請求時具有優先權,當然,如果你想優先考慮某個區域中的控制器,你可以這樣做。」_它看起來像通過聲明命名空間它應該路由到正確的HomeController – spooti