Общий контроллер, несколько областей - нужна маршрутизация?

У меня есть контроллер, определенный в библиотеке. Я хотел бы, чтобы этот контроллер был доступен через любую из моих 3 областей. На данный момент контроллер (скажем, "контакт") не обнаруживается, когда к нему обращаются, например, через область "администратор" (то есть URL /admin/contact). Однако он работает при доступе через "/ контакт".

Требуется ли какая-либо конфигурация маршрута для областей, чтобы разрешить доступ к общему контроллеру через эти области?

Благодарю.

1 ответ

Вы можете поместить этот контроллер в пространство имен:

namespace MvcApplication1.Controllers.MyAreas
{
    public class ContactsController : Controller
    {
        ...
    }
}

а затем в вашей области регистрации укажите это пространство имен:

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "Admin_default",
        "Admin/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional },
        new[] { "SomeLibrary.Controllers.MyAreas" }
    );
}

Теперь, когда вы перейдете к /admin/contacts/index Index действие ContactsController будет выполнен.

Другие вопросы по тегам