Asp.net 获取url,但不包含调用该url的方法的名称
我正在尝试获取网站的url加上当前控制器,而不使用调用它的方法 在ExampleController中,ExampleMethod Request.Url.ToString() => 我需要Asp.net 获取url,但不包含调用该url的方法的名称,asp.net,.net,asp.net-mvc,Asp.net,.net,Asp.net Mvc,我正在尝试获取网站的url加上当前控制器,而不使用调用它的方法 在ExampleController中,ExampleMethod Request.Url.ToString() => 我需要 我将使用的解决方案是解析并删除最后一个斜杠之后的所有内容,但我不确定是否已经有了使用服务器信息执行此操作的方法。您的问题可以通过使用Url.Action HTML helper重载来解决。要生成示例URL,请执行以下操作: 您需要执行以下操作: @Url.Action("ExampleControlle
我将使用的解决方案是解析并删除最后一个斜杠之后的所有内容,但我不确定是否已经有了使用服务器信息执行此操作的方法。您的问题可以通过使用Url.Action HTML helper重载来解决。要生成示例URL,请执行以下操作: 您需要执行以下操作:
@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时必须使用的内容。您的问题可以通过使用URL.Action HTML helper重载之一来解决。要生成示例URL,请执行以下操作: 您需要执行以下操作:
@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时必须使用的内容。为了让您开始,如果您可以访问URL帮助程序,我将查看
RouteData
而不是将URL视为字符串。需要生成通过电子邮件发送的字符串。您可以使用RouteData
查找控制器,操作,id和您在路线规则中定义的任何其他内容。然后,您可以以您想要的任何形式重新创建字符串。当然,如果您不担心路由中的额外数据、查询字符串、url哈希代码等,您可以按照建议剥离最后一部分。只是为了让您开始,如果您可以访问Url帮助程序,我将查看RouteData
,而不是将Url视为字符串。需要生成通过电子邮件发送的字符串。您可以使用RouteData
查找控制器、操作、id以及您在路由规则中定义的任何其他内容。然后,您可以以您想要的任何形式重新创建字符串。当然,如果您不担心路由中的额外数据、查询字符串、url哈希代码等,您可以按照建议剥离最后一部分。只是为了让您开始,如果您可以访问Url帮助程序,我将查看RouteData
,而不是将Url视为字符串。需要生成通过电子邮件发送的字符串。您可以使用RouteData
查找控制器、操作、id以及您在路由规则中定义的任何其他内容。然后,您可以以您想要的任何形式重新创建字符串。当然,如果您不担心路由、查询字符串、url哈希代码等中的额外数据,您可以按照建议剥离最后一部分获取您请求的当前控制器名称。根据@br4d的第一条注释,您可以使用:string controllerName=this.ControllerContext.RouteData.Values[“controller”].ToString()
获取您请求的当前控制器名称。根据@br4d的第一条注释,您可以使用:string controllerName=this.ControllerContext.RouteData.Values[“controller”].ToString()
以按请求获取当前控制器名称。