将操作链接添加到默认 MVC Web 应用程序

本文关键字:MVC Web 应用程序 默认 操作 链接 添加 | 更新日期: 2023-09-27 18:33:39

我创建了一个HelloWorld控制器,它是相应的视图。 当我去http://localhost/HelloWorld时,一切正常

我正在尝试将菜单项添加到默认的 MVC 应用程序。 在我有的 _Layout.cshtml 文件中

<ul id="menu">
    <li>@Html.ActionLink("Home", "Index", "Home")</li>
    <li>@Html.ActionLink("Hello World", "HelloWorld", "")</li>
    <li>@Html.ActionLink("About", "About", "Home")</li>
</ul>

请注意,我添加的唯一内容是Hello World部分。 但是,当我单击菜单项时,它会带我http://localhost/Home/HelloWorld。 我如何让它只去http://localhost/HelloWorld

我真的是MVC的新手,不确定我在做什么。 一些谷歌搜索提到了修改 Global.asax 中的路由.cs但这似乎有点奇怪,不知道从哪里开始。 我也尝试使用 ~ 回到根目录,这在旧学校 asp.net 页面中有效,但在这里不起作用。

将操作链接添加到默认 MVC Web 应用程序

ActionLink的定义是。

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName
)

由于您正在尝试重定向到 /HelloWorld ,我假设您的控制器HelloWorld并且您的操作Index。 使用这些信息,我们可以填写方法。

Html.ActionLink(
    "Hello World",  // Link Text
    "Index",        // Action
    "HelloWorld",   // Controller
)

您想要的 ActionLink 语法为:

@Html.ActionLink(string linkText, string actionName, string controllerName)

您传入 ActionName 并将 controllerName 留空,默认情况下,这将假定它是当前控制器上的操作(在本例中为"Home")。

尝试

@Html.ActionLink("Hello World", "HelloWorld", "HelloWorld")

假设,也就是说,HelloWorld以您HellowWorldController上的操作的名义. 如果 Action 不同,请将第二个参数替换为适当的名称。

您也可以使用空字符串:

@Html.ActionLink("Home", "", "")
@Html.ActionLink("About Us", "About", "Home")
@Html.ActionLink("Contact me", "Contact", "Home")