简体   繁体   中英

How to get the url prefixes asp.net MVC

I have a ASP.NET MVC application which will work on a IIS7. I don't know the final URL yet, and that's the problem.

I want to get the URL-Parts between the Top-level-domain and my controller.

For examople: http://www.mydomain.com/myApplication/MyController/ControllerMethod should return /myApplication/MyController/

This should also be possible, if the application is called via the standard method, for example http://www.mydomain.com/myApplication .

The Problem is that with my method it works perfectly if the full controller- and methodname is in the url, but as soon as there is only the controller name and the route takes the default index -method or there is no controller/method and the route takes the default controller/method, it will fail because my code puts wrong output.

I thought about hardcoding the controller-name and make a if-then-else orgy, but this doesn't seem very professional...

Maybe anyone of you has got an Idea.

Here's my function:

String segments = Request.Url.Segments;
System.Text.StringBuilder builder = new System.Text.StringBuilder();
String lastSegment = "";
int i= 0;

do
{
     builder.Append(segments[i]);
     lastSegment = segments[i++];
} while(!lastSegment.Equals("Home") && !lastSegment.Equals("Home/") && i < segments.Length);
return builder.toString();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM