我在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.
在这方面的任何帮助将不胜感激。
答案 0 :(得分:2)
如果是MVC应用程序,则使用"〜/ ControllerName / Action"而不是试图获得绝对路径。我在我的项目中使用了以下代码,它对我来说就像一个魅力。
<a id="aprimA" href="~/Account/StartingorMaintaining">HOME</a>
谢谢, 玛纳斯萨胡
答案 1 :(得分:1)
您无需为生成链接的绝对路径而烦恼。
您应该使用 Url.Action(string actionName, string controllerName,Object routeValues) 方法。如果您有RouteValues,则可以使用第三个参数将它们添加为匿名类型。
E.G:
Url.Action("Details","Widget",new {widgetId = 1})
应生成如下内容:
http://yourhost.com/Widget/Details/1
取决于您的路线值的设置方式。
答案 2 :(得分:0)
以这种方式尝试
HttpContext.Current.Server.MapPath("~/menu/1");
<强>更新强>
如果它不起作用,你可以尝试
HostingEnvironment.MapPath("~/menu/1");
通常在mvc应用程序中我使用
var url = Url.Content("~/menu/1");
否则,如果你召集特定控制人的行动,你可以做
Url.Action("ActionName", "ControllerName")