Url.Action()
使用路由生成 URL。所以,如果您想要更改它,必须更改该内容。目前它显示默认控制器是
Home
,默认操作是
Index
。将它们更改为其他任何内容,应该会给您提供不同的 URL。
例如,您的路由配置可能如下所示:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
将默认值更改为其他任何值或删除它们:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);
请注意,这样做意味着您的页面只能通过完整的
控制器/操作
路径访问,因此您可能需要创建一个登陆页面并将其设置为默认页面。
如果您绝对需要知道操作的完整URL,则可以按照以下方式进行。首先创建一个额外的路由并将其放在路由配置的底部。这个路由不会被系统默认使用。
routes.MapRoute(
name: "AbsoluteRoute",
url: "{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);
然后在代码中,您可以调用此方法(不确定在 Razor 中是否可用,但编写一个帮助器方法应该很容易):
var fullURL = UrlHelper.GenerateUrl("AbsoluteRoute", "Index", "Home", null, null, null, null, System.Web.Routing.RouteTable.Routes, Request.RequestContext, false);
UrlHelp.GenerateUrl
在Razor中可用,正是我所需要的。谢谢。 - Mark ErasmusAbsoluteRoute
设置默认控制器,但没有起作用。 - Mark Erasmus