2012-05-09 42 views
1

我创建了一个HelloWorld控制器,它是相应的视图。所有工作正常,当我去http://localhost/HelloWorld将ActionLink添加到默认MVC Web应用程序

我想添加一个菜单项到默认的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页面中工作的根,但不在这里。

回答

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 
) 
+0

要容易。业余的错误。直到7分钟后才能接受。将在几分钟内接受。谢谢。 –

+0

不客气。有时候我们很累,即使最简单的事情也很困难。 – 2012-05-09 01:43:53

0

要用于ActionLink的语法是:

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

你传入ActionName和离开controllerName空白,默认情况下会认为它是当前控制器上的动作(在这种情况下,“家”)。

尝试

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

假设,那就是,在行动HelloWorldHellowWorldController。如果Action有所不同,请用适当的名称替换第二个参数。

+0

因为他希望URL是'/ HelloWorld',所以**有**作为'Index'。 – 2012-05-09 01:50:06

相关问题