我试图获取网站的网址加上当前的控制器而没有调用它的方法。
在ExampleController中,ExampleMethod Request.Url.ToString()
=> http://localhost:51747/.../ExampleController/ExampleMethod
我需要
http://localhost:51747/.../ExampleController
我将使用的解决方案是在最后一个斜杠之后解析并删除所有内容,但我不确定是否已经有一种方法可以使用服务器信息来执行此操作。
答案 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时使用。