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

本文关键字:路径 导航 用于 获取 | 更新日期: 2023-09-27 18:36:17

我在c#中创建了一个MVC应用程序,它具有不同的菜单和子菜单。我面临的问题是导航问题,路由链接如下所示

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

我不能只是菜单href中的硬核链接,因此我正在寻找一些命令来为我提供http://localhost的绝对路径,以便我可以使用它来进行动态导航,在 PHP 中,使用$_SERVER变量非常简单,但我无法在这里找到任何功能。

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

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

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

如果是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

具体取决于路径值的设置方式。

尝试这样

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

更新

如果它不起作用,您可以尝试

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

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

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

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

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