2012-05-09 9 views
1

HelloWorldコントローラを作成し、対応するビューを作成しました。すべてが正しく動作していますhttp://localhost/HelloWorldデフォルトのMVC WebアプリケーションにActionLinkを追加

デフォルトの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に本当に新しく、自分が何をしているのか正確にはわかりません。いくつかのGoogle検索で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

ようこそ。時には、簡単なことが難しい場合でも、とても疲れていることがあります。 –

0

したいというActionLinkのための構文は次のとおりです。

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

あなたはACTIONNAMEに渡すと、デフォルトでは、現在のコントローラ上のアクションの前提となる、controllernameの空白を残している(中この場合、「ホーム」)。

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

アクションの名前でHelloWorldそのごHellowWorldControllerに、つまり、と仮定してみてください。アクションが異なる場合は、2番目のパラメータを適切な名前に置き換えます。

+0

彼はURLが '/ HelloWorld'であることを望んでいるので、アクション**は**が' Index'になっています。 –

関連する問題