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>

私が追加したのはHelloWorldの部分だけであることに注意してください。ただし、メニュー項目をクリックすると時間がかかりますhttp://localhost/Home/HelloWorld。どうすればそれをただに行くことができhttp://localhost/HelloWorldますか?

私はMVCに本当に慣れていないので、何をしているのか正確にはわかりません。いくつかのグーグル検索はGlobal.asax.csのルートを変更することに言及しましたが、それは少し奇妙に思え、どこから始めればよいのかわかりません。また、〜を使用してルートに戻ることも試みましたが、これは古い学校のasp.netページで機能しますが、ここでは機能しません。

4

3 に答える 3

2

の定義はActionLinkです。

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

にリダイレクトしようとしているので、コントローラーはであり、アクションはであると/HelloWorld想定しています。この情報を使用して、メソッドに入力できます。HelloWorldIndex

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を空白のままにします。これは、デフォルトでは、現在のコントローラー(この場合は「ホーム」)のアクションであると見なされます。

試す

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

つまり、あなたのアクションHelloWorldの名前でそれを仮定します。アクションが異なる場合は、2番目のパラメーターを適切な名前に置き換えます。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 に答える