如何获取asp.net前缀的asp.net MVC

时间:2014-06-02 07:48:02

标签: c# asp.net asp.net-mvc url

我有一个可以在IIS7上运行的ASP.NET MVC应用程序。 我还不知道最终的网址,这就是问题所在。

我想获取顶级域名和控制器之间的URL-Parts。

对于例如:http://www.mydomain.com/myApplication/MyController/ControllerMethod应该返回/myApplication/MyController/

如果通过标准方法调用应用程序,例如http://www.mydomain.com/myApplication,也应该可以这样做。

问题在于,使用我的方法,如果完整的controller-和methodname在url中,它会完美地工作,但只要控制器名称和路由采用默认的index - 方法或那里没有控制器/方法,并且路由采用默认控制器/方法,它将失败,因为我的代码输出错误。

我考虑过对控制器名称进行硬编码并制作一个if-then-else狂欢,但这看起来并不专业......

也许你们中的任何人都有一个想法。

这是我的功能:

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();

1 个答案:

答案 0 :(得分:1)