Как добавить некоторые RouteData для MapMvcAttributeRoutes?

Я создаю мультитенантный веб-сайт и использую в своем приложении и MapMvcAttributeRoutes, и стандартный MapRoute. Я также использую этот код для успешного получения имени субдомена, когда я нахожусь в контроллере, который не использует RouteAttribute. Я не могу получить значение поддомен от любых контроллеров / действий, которые используют RouteAttribute. Значение не будет существовать из коллекции RouteData. Итак, как получить значение субдомена, когда я нахожусь внутри действия, которое использует атрибут RouteAttribute??

Вот код RegisterRoutes:

    public static void RegisterRoutes(RouteCollection routes)
            {
                const string mainNamespace = "Presentation.Website.Controllers";
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.MapMvcAttributeRoutes(); // Activate attribute Routing

                // This will add the parameter "subdomain" to the route parameters
// TODO: Do the same for MapMvcAttribute! but how... ?
                routes.Add(new SubdomainConfig(new[] { "www", "yourdomain", "mail" }, new[] { mainNamespace }, CoreSettings.SubDomainKey));

                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                    namespaces: new[] { mainNamespace }
                );
            }

например

Это будет работать:

[AllowAnonymous]
        public ActionResult Register(string subdomain)
        {
            ViewBag.Subdomain = subdomain;
            var vModel = new RegisterViewModel();
            return View(vModel);
        }

Это не сработает:

[Route("login"), AllowAnonymous]
        public ActionResult Login(string returnUrl, string subdomain)
        {
            ViewBag.Subdomain = subdomain; // <----------- Empty
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

Дэвид

0 ответов

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