/ / Wie Decarote Url in asp.net MVC, so dass URL identifiziert, auf welchen UserType zugegriffen wird - asp.net-mvc, asp.net-mvc-Routing, Bereiche

Wie Decarote Url in asp.net MVC, so dass URL identifiziert, auf welchen UserType zugegriffen wird - asp.net-mvc, asp.net-mvc-Routing, Bereiche

Ich arbeite derzeit an einer asp.net mvc-Anwendung mit drei UserTypes. 1) Administrator 2) Schule 3) Elternteil

Ich möchte die Url mit 3 Teilen dekorieren,

like if it is admin then ->     Admin/{Controller}/{Action}/{id}
if Shcool ->     School/{Controller}/{Action}/{id}
if Parent - >     Parent/{Controller}/{Action}/{id}

Ich habe versucht, routeconfig.cs zu ändern wie

 routes.MapRoute(
name: "Default",
url: "School/{controller}/{action}/{id}",
defaults: new { controller = "EstablishmentLogin", action = "Login", id = UrlParameter.Optional    });

Es hat funktioniert, aber das Problem ist, wo immer ich Ajax Anrufe verwendet habe, muss ich das ändern URL von [{Controller} / {Action} / {id}] nach [Schule / {Controller} / {Action} / {id}].

Es wird zeitaufwendig sein, alle Ajax-Aufrufe zu finden und die URLs zu ändern. Bitte schlagen Sie mir vor, wenn es für dieses Problem eine Alternative gibt.

Also I want to Organize the folders Physically as

1)Admin -> Controllers
-> View
-> models

2)School - > Controllers
- > Views
-> Models`enter code here

3)Parent - > Controllers
- > Views
- > Models
How can i acheive this ?

Antworten:

0 für die Antwort № 1

Richte sie als Bereiche ein. Rechtsklick auf dein Projekt -> Hinzufügen -> Bereich. Es wird eine Ordnerstruktur erstellt, die genau der von Ihnen in Ihrer Frage angegebenen entspricht. Der Bereich wird auch eine eigene Version von RouteConfig.cs genannt [AreaName]AreaRegistration.cs. Es ist wie eine Mini-MVC-Site innerhalb Ihres Hauptprojekts. Wenn Sie eine Verknüpfung zwischen Bereichen oder zwischen der Haupt-Site und einem Bereich erstellen möchten, den Sie wie ...Url.Action("Action", "Controller", new { area = "AreaName" });