1

我创建了一个 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 页面中工作的 root ,但不是在这里。

4

3 回答 3

2

的定义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
)
于 2012-05-09T01:37:31.480 回答
0

您想要的 ActionLink 的语法是:

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

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

尝试

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

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

于 2012-05-09T01:39:37.097 回答
0

您还可以使用空字符串:

@Html.ActionLink("Home", "", "")

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

@Html.ActionLink("Contact me", "Contact", "Home")
于 2018-05-15T12:11:06.100 回答