mam trasy skonfigurowane następująco:MVC Routing ograniczeniem Controller Names
context.MapRoute(
name: "Area",
url: "Area/{controller}/{action}",
defaults: new
{
controller = "Home",
action = "Dashboard"
}
);
context.MapRoute(
name: "AccountArea",
url: "Area/{accountFriendlyId}/{controller}/{action}",
defaults: new
{
controller = "Home",
action = "Dashboard",
accountFriendlyId = RouteParameter.Optional
}
);
context.MapRoute(
name: "AccountCampaignArea",
url: "Area/{accountFriendlyId}/{campaignFriendlyId}/{controller}/{action}",
defaults: new
{
controller = "Home",
action = "Dashboard",
accountFriendlyId = RouteParameter.Optional,
campaignFriendlyId = RouteParameter.Optional
}
);
I mam palące pragnienie posiadania Area/friendlyAccountName/Home
wziąć mnie do Dashboard()
ale to nie działa (404). Myślę, że powodem jest to, że szukamy przyjaznego kontroleraAccountName.
Wygodny ze świadomością, że gdybym miał wybrać nazwę konta po jednym z moich kontrolerów, wszystko się zawiesza, czy istnieje sposób na przejście do następnej trasy w przypadku, gdy ciąg nie znajdzie odpowiedniego kontrolera? Czy istnieje sposób na wykorzystanie refleksji i unikanie utrzymywania ograniczeń za każdym razem, gdy modyfikuję listę kontrolerów?
EDIT
Znasz drogę, która nie wykorzystuje odbicia lub przynajmniej zawiera pochodną typu przeszukiwanie do tego obszaru? Nie podoba mi się pomysł poniesienia tego obciążenia dwukrotnie, gdy drugi parametr trasy nie pasuje do nazwy kontrolera (przekroczenie limitu, a następnie ponowne wyszukiwanie podczas konstruowania kontrolera). Szkoda, że nie było sposobu, aby uchwycić wyjątek w momencie konstruowania kontrolera, a następnie utworzyć kopię zapasową i przejść do następnej trasy.
Bez pierwszych dwóch trasach, 'Ar ea/Controller/Action "wypełni przyjazne parametry id i wyśle mnie do domyślnego kontrolera, a akcja" Area/friendly/Controller/Action "zawiedzie –
Ach, przepraszam, nie złapałem tego' {accountFriendlyId} ' będzie prawidłową nazwą operacji. Zaktualizuję odpowiedź. –
Jaka jest konwencja dotycząca analizowania tych łańcuchów? Nie miałem pojęcia, że można to zrobić w sposób dosłowny (prawdopodobnie nie będę ich używał w szczególności). –