Я пытаюсь понять, как маршрут конфигурация работает в MVC 5.Маршрутов в MVC 5
У меня есть следующая структура для моего приложения:
BaseCRUDController
public class BaseCRUDController<TEntity, TEntityViewModel> : Controller
where TEntity : class
where TEntityViewModel : class
{
private readonly IBaseService<TEntity> baseService;
public BaseCRUDController(IBaseService<TEntity> service)
{
this.baseService = service;
}
[HttpGet]
public virtual ActionResult Index()
{
IList<TEntityViewModel> entities = baseService.FindFirst(10).To<IList<TEntityViewModel>>();
return View(entities);
}
}
Государство-участник
[RouteArea("management")]
[RoutePrefix("countries")]
public class CountriesController : BaseCRUDController<Country, CountryViewModel>
{
private readonly ICountryService service;
public CountriesController(ICountryService service)
: base(service)
{
this.service = service;
}
}
То, что я пытаюсь сделать, просто: http://myapplication.com/management/countries. У меня есть много других контроллеров, что суперкласс является базовым контроллером. Я делаю так, чтобы избежать повторения кода, так как контроллеры имеют схожую структуру.
Проблемы:
- Я не могу достичь URL, что я хочу (/ управления/страны)
- Я не знаю, как настроить свой домашний контроллер, потому что я хочу, что оно может достигать http://myapplication.com
Как я мог исправить эти проблемы?
Мой маршрут конфигурации такова:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
Просьба точно определить, какие ошибки вы получаете (например, 404, или просмотреть не найдено и т. Д.), А также указать конфигурацию маршрута. Спасибо –