/ / Jak zdeklarować adres URL w asp.net MVC, aby adres URL identyfikował, który typ użytkownika ma być dostępny - asp.net-mvc, asp.net-mvc-routing, obszary

Jak zdekodować adres URL w asp.net MVC, aby Url identyfikował, który typ UserType jest już dostępny - asp.net-mvc, asp.net-mvc-routing, obszary

Obecnie pracuję nad aplikacją asp.net mvc z trzema typami użytkowników. 1) Administrator 2) Szkoła 3) Rodzic

Chcę ozdobić adres URL 3 częściami,

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

Próbowałem zmodyfikować plik routeconfig.cs tak jak

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

Działa, ale problem polega na tym, że kiedykolwiek użyłem wywołań ajax, muszę zmodyfikować adres URL z [{Controller} / {Action} / {id}] do [School / {controller} / {Action} / {id}].

Sprawdzanie wszystkich wywołań ajax i modyfikowanie adresów URL będzie czasochłonne. Proszę zasugerować mi, czy istnieje jakaś alternatywa dla tego problemu.

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 ?

Odpowiedzi:

0 dla odpowiedzi № 1

Ustaw je jako obszary. Kliknij projekt prawym przyciskiem myszy -> Dodaj -> Obszar. Stworzy to strukturę folderów dokładnie taką, jaką przedstawiłeś w swoim pytaniu. Obszar będzie miał także własną wersję RouteConfig.cs o nazwie [AreaName]AreaRegistration.cs. To jest jak mini witryna MVC w głównym projekcie. Jeśli chcesz utworzyć łącze między obszarami lub między główną witryną a obszarem, to ją zbudujesz jak ...Url.Action("Action", "Controller", new { area = "AreaName" });