Я использую настройку маршрутизации MVC по умолчанию:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
У меня есть область, определяемая как:
public class AdministrationAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Administration";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Administration_default",
"Administration/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
И у меня есть контроллер в этой области:
namespace XXX.Areas.Administration.Controllers
{
public class CountryController : Controller
{
public ActionResult Index()
{
///
}
}
}
Когда я печатаю
/Администрирование/Страна
он работает хорошо, как это желательно.
Когда я печатаю
/Страна
действие все равно вызывается, хотя вид не найден, поэтому я получаю сообщение об ошибке.
Почему MVC принимает
/Страна
как действительный маршрут? У меня нет другого CountryController в зоне без зоны.