获取没有调用它的方法名称的URL

时间:2015-06-10 13:46:00

标签: asp.net .net asp.net-mvc

我试图获取网站的网址加上当前的控制器而没有调用它的方法。

在ExampleController中,ExampleMethod Request.Url.ToString()

=> http://localhost:51747/.../ExampleController/ExampleMethod

我需要

http://localhost:51747/.../ExampleController

我将使用的解决方案是在最后一个斜杠之后解析并删除所有内容,但我不确定是否已经有一种方法可以使用服务器信息来执行此操作。

1 个答案:

答案 0 :(得分:0)

您的问题可以通过使用其中一个Url.Action HTML帮助程序重载来解决。要生成示例网址:

http://localhost:51747/.../ExampleController

您需要这样做:

@Url.Action("ExampleController", "Index", null, Request.Url.Scheme)

假设您使用的是默认的ASP.NET MVC路由配置。

更详细地说,如果您提供给帮助程序的操作在routeconfig中设置为默认操作,则不会在结果URL中指定。

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

参见action =" Index"默认?无论您设置了什么,都会在生成URL时使用。