在 C# 中获取导航的绝对路径

getting absolute path in c# for navigation

我用 C# 创建了一个 MVC 应用程序,它有不同的菜单和子菜单。 我面临的问题是导航, 路由 link 看起来像这样

http://localhost/menu/1
http://localhost/submenu/5
http://localhost/submenu3/1

我不能在菜单 href 中只使用硬核 links ,因此我正在寻找一些命令来给我绝对路径 http://localhost 以便我可以将其用于进行动态导航,在 PHP 中使用 $_SERVER 变量非常简单,但我无法在此处找到任何功能。

Server.MapPath("/") gives me my local drive address where it is stored.

在这方面的任何帮助将不胜感激。

这样试试

HttpContext.Current.Server.MapPath("~/menu/1");

更新

如果不行可以试试

HostingEnvironment.MapPath("~/menu/1");

我通常在 mvc 应用程序中使用

var url = Url.Content("~/menu/1");

否则,如果您调用特定控件的操作,您可以执行

Url.Action("ActionName", "ControllerName")

如果是 MVC 应用程序,则使用“~/ControllerName/Action”而不是尝试获取绝对路径。我在我的项目中使用了下面的代码,它对我来说就像一个魅力。

<a id="aprimA" href="~/Account/StartingorMaintaining">HOME</a>

谢谢, 玛纳斯萨胡

我的博客:http://justsharingfun.blogspot.com/

您无需为生成链接的绝对路径而烦恼。

您应该使用 Url.Action(string actionName, string controllerName,Object routeValues) 方法。如果您有 RouteValues,那么您可以使用第三个参数将它们添加为匿名类型。

例如:

    Url.Action("Details","Widget",new {widgetId = 1})

应该生成如下内容:

    http://yourhost.com/Widget/Details/1

取决于您的路由值的设置方式。