如何在 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 页面的主要内容,如果未能解决你的问题,请参考以下文章