href正在当前网址的末尾添加网址

时间:2016-01-15 18:16:21

标签: asp.net-mvc razor

我有一个从数据库中填充的菜单,从我的模型进入我的视图。菜单生成的链接是正确的。但是,它会附加到我的URL末尾而不是替换它。

    <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-        
haspopup="true" aria-expanded="false" href="@menuLevel1.MenuLink">
                            @menuLevel1.MenuName                                
                        </a>

        in my DB Menulink="~/Admin/changepassword.aspx"

所以当我点击我看到的按钮时 http://localhost:51150/Mvc/Cats/~/Admin/changepassword.aspx 它正在添加url以在当前url之后结束。

3 个答案:

答案 0 :(得分:2)

更改

href="@menuLevel1.MenuLink"

href="@Url.Content(menuLevel1.MenuLink)"

答案 1 :(得分:2)

当您希望为网站上的任何文件或资源解析网址并使用相对路径传递网址时,会使用Url.Content:

@Url.Content("~/path/file.htm")

Url.Action用于解析来自控制器的操作,例如:

@Url.Action("ActionName", "ControllerName", new { variable = value })

您必须在控制器中添加操作:

public YourControllerController : Controller
{
    public ActionResult YourAction() { /* stuff */ }
}

答案 2 :(得分:1)

有些链接是null,这就是为什么我现在收到错误它正在工作。谢谢Steve Harris。

@if (menuLevel2.MenuLink != null && menuLevel2.MenuLink != "")
                                        {
                                            <a href="@Url.Content(menuLevel2.MenuLink)">
                                                @menuLevel2.MenuName
                                            </a>
                                        }
                                        else
                                        {
                                            <a href="~/Homepage.aspx">
                                                @menuLevel2.MenuName
                                            </a>
                                        }