在 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>
谢谢,
玛纳斯萨胡
您无需为生成链接的绝对路径而烦恼。
您应该使用 Url.Action(string actionName, string controllerName,Object routeValues) 方法。如果您有 RouteValues,那么您可以使用第三个参数将它们添加为匿名类型。
例如:
Url.Action("Details","Widget",new {widgetId = 1})
应该生成如下内容:
http://yourhost.com/Widget/Details/1
取决于您的路由值的设置方式。
我用 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>
谢谢, 玛纳斯萨胡
您无需为生成链接的绝对路径而烦恼。
您应该使用 Url.Action(string actionName, string controllerName,Object routeValues) 方法。如果您有 RouteValues,那么您可以使用第三个参数将它们添加为匿名类型。
例如:
Url.Action("Details","Widget",new {widgetId = 1})
应该生成如下内容:
http://yourhost.com/Widget/Details/1
取决于您的路由值的设置方式。