如何在MVC4中使用href链接cshtml页面

4

我希望使用 href 的锚标签来链接一个 Menu.cshtml 页面,这样每当我点击导航栏中的菜单链接时它就会直接跳转到 Menu.cshtml 页面。我尝试过使用以下代码,但是无法实现。以下是我正在使用的代码:

<a class="page-scroll" href="~/Views/Home/Menu.cshtml">Menus</a>

使用 @Html.ActionLink("菜单", "Menu", "yourController", null, new { @class = "page-scroll" }) 并添加一个名为 Menu 的控制器方法,返回视图。 - user3559349
我即使在导航栏中使用此链接,也必须添加控制器吗?我是MVC的初学者,您能否给我解释一下? - Nidz
当您将Menu.cshtml放置在Home文件夹中时,约定是您已经定义了一个Home控制器和一个Menu操作。 - Christos
是的。在HomeController中,方法只需为public ActionResult Menu() { return View(); }。在MVC中,您不会导航到文件,而是导航到返回视图的方法。 - user3559349
4个回答

7
你可以尝试使用ActionLink html助手,让框架生成正确的链接。
@Html.ActionLink("Menus","Menu","Home", null, new { @class = "page-scroll" })

3

在ASP.NET MVC中,您无法直接链接到视图。这将破坏整个MVC的目的。在ASP.NET MVC中,控制器负责选择要返回给用户的视图。您可以创建一个操作链接到控制器操作,并让该操作决定应向用户返回哪个视图。在您的情况下,应该是:

@Html.ActionLink("Menus", "Action", "Controller", null, new { @class = "page-scroll" });

假设您创建了一个名为HomeController的控制器和一个名为Menu的操作。让我们还添加一个简单的操作主体:

public ActionResult Menu()
{
    return View();
}

按照惯例,ASP.NET MVC会在 Views/Home/ 文件夹中寻找名为 Menu.cshtml 的视图。您的actionlink将链接到这个动作:

@Html.ActionLink("Menus", "Menu", "Home", null, new { @class = "page-scroll" });

你的问题是如何使用 href 链接到一个视图。 @Html.ActionLink 会为你完成这个任务,但如果你真的想使用 href,你可以链接到一个 action 而不是直接链接到一个视图,例如(如果你正在使用默认的 MVC 路由):

<a class="page-scroll" href="/Home/Menu">Menus</a>

2

试试这个,这种方法用于重定向。

@Html.ActionLink("Menus", "Menu", "Home", new {@class="page-scroll"});

0

在Asp.net Mvc 5中使用图像作为锚标签

当您想要将Logo作为操作链接时

href="~/"

在布局页面中重定向到主页


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接