【发布时间】:2014-06-02 07:48:01
【问题描述】:
我有一个可以在 IIS7 上运行的 ASP.NET MVC 应用程序。 我还不知道最终的 URL,这就是问题所在。
我想获取顶级域和我的控制器之间的 URL 部分。
例如:http://www.mydomain.com/myApplication/MyController/ControllerMethod应该返回/myApplication/MyController/
如果通过标准方法调用应用程序,例如http://www.mydomain.com/myApplication,这也应该是可能的。
问题是,如果完整的控制器名称和方法名称在 url 中,我的方法可以完美运行,但是只要只有控制器名称并且路由采用默认的 index-method 或没有控制器/方法和路由采用默认控制器/方法,它会失败,因为我的代码输出错误。
我想过硬编码控制器名称并进行 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();
【问题讨论】:
标签: c# asp.net asp.net-mvc url