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

Posted

技术标签:

【中文标题】如何在 mvc4 中使用 href 链接 cshtml 页面【英文标题】:How to link a cshtml page using href in mvc4 【发布时间】:2016-01-08 04:37:18 【问题描述】:

我想使用带有 href 的锚标记链接 Menu.cshtml 页面,这样每当我单击导航栏中的菜单链接时,它都会将我引导至 Menu.cshtml。我已经尝试使用此代码几次,但我无法做到。这是我正在使用的代码:

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

【问题讨论】:

使用@Html.ActionLink("Menus", "Menu", "yourController", null, new @class = "page-scroll" ) 并添加一个名为Menu 的控制器方法来返回视图。 我必须添加一个控制器,即使我将它用作导航栏中的链接??我是mvc的初学者,你能解释一下吗? 当您在文件夹Home 中放置Menu.cshtml 时,惯例是您定义了带有Menu 操作的Home 控制器。 是的。该方法将只是HomeController 中的public ActionResult Menu() return View(); 。在 MVC 中,您无需导航到文件,而是导航到返回视图的方法。 【参考方案1】:

您可以尝试使用ActionLink html 帮助程序,让框架生成正确的链接。

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

【讨论】:

【参考方案2】:

在 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 的视图。链接到此操作的操作链接将是:

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

但是,您的问题是如何使用 href 链接到视图。 @Html.ActionLink 将为您执行此操作,但如果您真的想使用 href,您可以直接链接到操作而不是视图(例如,如果您使用的是默认 MVC 路由):

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

Asp.net Mvc 5 中的图像作为锚标记

当您想要将徽标作为操作链接时

href="~/"

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

【讨论】:

以上是关于如何在 mvc4 中使用 href 链接 cshtml 页面的主要内容,如果未能解决你的问题,请参考以下文章

MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求

MVC4 自定义错误页面

ASP.NET MVC4 部分视图

ASP.NET MVC4 部分视图

在mvc4中多语言建站的实例

如何在 MVC4 StyleBundle 中引用 *.min.css 文件? [复制]