У меня есть приложение MVC 4
. В этом приложении у меня есть определенные области, URL-адрес которых не разрешен должным образом. LocationAreaRegistration.cs
выглядит следующим образом:
context.MapRoute(
"Location_default",
"{culture}/{controller}/{action}/{id}",
new { culture = "en", action = "LocationIndex", id = UrlParameter.Optional },
new { controller = "(LocationIndex)" }
);
Мой route.config
выглядит следующим образом:
routes.MapRoute(
name: "Default",
url: "{culture}/{controller}/{action}/{id}",
defaults: new { culture = "en", controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Locator.Areas.Location.Controllers" }
).DataTokens.Add("area", "Location");
Я также попытался изменить route.config
, как показано ниже:
routes.MapRoute(
name: "Default",
url: "{culture}/{controller}/{action}/{id}",
defaults: new { culture = "en", controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Locator.Areas.Location.Controllers" }
);
Ни один из подходов не сработал, и я получаю ошибку The resource cannot be found
.
Однако, когда я изменяю LocationAreaRegistration.cs
следующим образом, он работает:
context.MapRoute(
"Location_default",
"{culture}/Location/{controller}/{action}/{id}",
new { culture = "en", action = "LocationIndex", id = UrlParameter.Optional },
new { controller = "(LocationIndex)" }
);
Но я не хочу, чтобы URL-адрес содержал Location
(имя области). Что я делаю не так?
ИЗМЕНИТЬ
URL-адреса, которые я собираюсь использовать, будут примерно такими:
http://localhost/en/LocationIndex/LocationIndex
Здесь en
— текущая культура, Home
— имя controller
, а Index
— имя action method
.