У меня есть проект с 2 областями / Admin и /User.
Маршрут администратора по умолчанию / Admin / Home / Index , а маршрут пользователя по умолчанию / User / Home/Index.
Можно ли реализовать маршрутизацию, чтобы их домашний URL выглядел как / Профиль / Индекс , но отображался контент из / Администратор / Главная / Индекс для администраторов и / Пользователь / Домой / Индекс для пользователей?
upd
Наконец-то узнайте, как это сделать
context.MapRoute(
"Admin",
"Profile/{action}",
new { area = AreaName, controller = "Home", action = "Index" },
new { RoleConstraint = new Core.RoleConstraint() },
new[] { "MvcApplication1.Areas.Admin.Controllers" }
);
...
context.MapRoute(
"User",
"Profile/{action}",
new { area = AreaName, controller = "Home", action = "Index" },
new { RoleConstraint = new Core.RoleConstraint() },
new[] { "MvcApplication1.Areas.User.Controllers" }
);
public class RoleConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
string roleName = db.GetRoleByUserName(httpContext.User.Identity.Name);
string areaName = route.Defaults["area"].ToString();
return areaName == roleName;
}
}
Это работает, но для меня это не путь MVC.Кто-нибудь знает, как это сделать правильно?