在 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.
在这方面的任何帮助将不胜感激。
如果是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")