Şimdiye kadar (kısalık için) Ben Global.asax içinde bir rota böyle kaydedildi: "RootNamespace"ASP.NET MVC Standart yolları
var rootNamespace = new RouteValueDictionary(new { namespaces = new[] { "MyApp.Web.Controllers" } });
routes.Add(new LowercaseRoute("{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
DataTokens = rootNamespace
});
olduğunu
Nerede SmallcaseRoute, Rota'dan devralınır ve yalnızca tüm yolları küçük harf yapar. Ben de böyle kayıtlı bir alana sahip:context.Routes.Add(new LowercaseRoute("admin/{controller}/{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { action = "List", id = UrlParameter.Optional }),
DataTokens = adminNamespace
});
adminNamespace başka ad, varsayılan rota ile aynı fikir, ancak doğru ad ile.
http://example.com/contact <- default route, "Home" controller
http://example.com/admin/account <- area route, "Account" controller, default "List" action
sorun bu
http://example.com/admin/home/contact
da çalışır şudur: Bu iyi çalışır, ben şuna benzer URL'leri erişebilirler. "Yönetici" alanı altında "iletişim" eylemine sahip "ev" denetleyicisi yok. Doğru sayfayı "/ contact" dan, ancak "/ admin/home/contact" olmak üzere URL ile çeker.
Bunun olmasını önlemek için herhangi bir yolu var mı?
Teşekkürler.
DataTokens sözlüğünün yönetici alanına "UseNamespaceFallback = false" eklenmesi sorunu çözdü. Teşekkürler! – pbz