2012-05-09 69 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

相關問題