asp.net mvc - Multiple application root paths in one ASP MVC application -


my site structured pretty typically, paths like:

/home /home/search /categories /categories/misc 

what need happen have dynamic set of prefixes put on path , have map same place, , more importantly, have prefix kept throughout site. prefix won't there, when it's there, needs kept.

for example, want /client1/program1/home map same controller action/view /home, , if there's link on /home references url.content("~") or url.action("categories"), generated url needs keep /client1/program1 prefix of request, example in latter case: /client1/program1/categories. need prefix remain on every request maintain custom functionality specific client/program. typically manage sub-domains , dns, leaving paths alone, particular client has compliance problems running on multiple domains.

the /client1/ part static , can set in code, change infrequently, /program1/ part dynamic , need support changes there without deploying new code.

i've been trying working combination of url rewriting, routes, or custom virtualpathprovider, can't seem work. session , cookies aren't reliable enough, time out , can cleared. there many places change try consistently on query string.

url rewriting strips path info away before application can see it. still needs access read client , program should displaying.

routes can request right controller, subsequent requests page ignore whatever client/program was.

a custom virtualpathprovider feels promising direction, underlying physical path isn't changing. seems more useful having separate application in directory running in root of site. changing doesn't change route , path handling, alters ability of engine find views.

any suggestions?

edit: routes handle paths go through engine, things url.action() work okay routes. have other urls generated url.content(), that's question i'm asking: how can change ~ maps in url.content()? think that's why started looking @ virtualpathprovider i'm pretty sure not @ need. more focused on mapping local physical file paths.

i don't know if i'm missing (as seems trivial), tried on test project , worked fine.

add route config.

routes.maproute("custom", "client1/{program1}/{controller}/{action}"); 

then, can use httpcontext.request object find value of program1

let me know if works.


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -