Я в настоящее время пытаюсь сгенерировать этот URL «/ Cloud/Hosting/RoaringPenguin/Manage/Exclusions».Asp.Net MVC 5 маршрутизация пользовательских действий под областью
Вот Зона регистрации
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Hosting_default",
"Cloud/Hosting/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
здесь контроллер
public class RoaringPenguinController : PortalControllerBase
{
public ActionResult Exclusions()
{
return View("Exclusions");
}
}
я попробовал добавил маршрут на само действие, как так
[Route("Manage/Exclusions")]
public ActionResult Exclusions()
Я также пробовал добавление некоторых атрибутов к самому контроллеру
[RouteArea("Hosting")]
[RoutePrefix("RoaringPenguin")]
public class RoaringPenguinController : PortalControllerBase
, но это, похоже, не работает. Если я оставлю все атрибуты, то окончательный URL-адрес, который я получаю, это «/ Cloud/Hosting/RoaringPenguin/Exclusions». Кто-нибудь знает, как я могу получить «Управление» в URL-адресе?
Просто, чтобы подтвердить у меня есть следующий набор в моем методе RegisterRoutes под классом RouteConfig
routes.MapMvcAttributeRoutes();
Любая помощь приветствуется. Спасибо
Hi Chris, Я попробовал первое предложение (без базового контроллера), но все, что я получаю, это ошибка 404 'Ошибка сервера в '/'. Ресурс не найден. Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, если его имя было изменено или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно. Запрошенный URL:/Cloud/Хостинг/RoaringPenguin/Управление/Исключения Информация о версии: Microsoft .NET Framework Версия: 4.0.30319; ASP.NET Версия: 4.6.1069.1' – tjackadams
Есть что-то еще. Либо область не регистрируется должным образом, маршрутизация атрибутов не включена должным образом, или другой маршрут связан с этим. Основываясь на том, что вы опубликовали, это должно сработать. Если что-то не так, как ваша область на самом деле не просто 'Хостинг', но что-то вроде« CloudHosting », то вы должны внести необходимые исправления в код. –
Вы были верны. В основном моя маршрутизация атрибутов вызывалась после регистрации моей области. Это решение '// атрибут маршрутизации routes.MapMvcAttributeRoutes(); // Регистрация области РайонРегистрация.RegisterAllAreas(); ' после того, как я сделал это, изменили ваше начальное решение. Большое спасибо! – tjackadams