質問

私は新しい私はフィル・ハークエリアを使用するプロジェクト(1)アイデア+スティーブ・サンダーソンの微調整(2)に取り組んでいます。私は、ビューエリア(フー)へのアクションリンクと簡単なルートビューを持っています。生成されたURLは、適切な面積を有しているが、それは最後にルートコントローラ(バー)を追加します。ここに私のルートビューのコードがあります:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo" } )%>

</asp:Content>

、ここではそれが生成するURLです

はlocalhost:6494 /フー/バー

任意のアイデアなぜ "/バー" が上ですか?

(1): haacked.com/archive/2008/ 11月4日/エリアインaspnetmvc.aspxする

(2):ブログ.codeville.net / 2008/11月5日/ APP-エリアインASPNET-MVCテイク-2 /

役に立ちましたか?

解決

私は解決策を見つけました。私はそれが適切であるとは思わないので、私は改善をお願いします。コントローラ名を指定することで、私は、URLが適切に形成するために取得することができます。すなわちます。

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo", controller="Baz" } )%>

</asp:Content>

私はこれをしなかったら、そのURLは正しかった。

はlocalhost:6494 / Fooの

なぜこれが問題でしょうか?フィルのデモは、名前にHomeControllerとコントローラを使用しています。 (私はトレースすることはできませんので)私はHtml.ActionLink()メソッドは、URLの構築について、どのようになるかわかりません。それは私が持っていないにHomeControllerは、既存のデフォルトの場合、に依存しているかのようにそれが見えます。

誰もがデフォルトにホームという名前のないコントローラーを可能にする方法についての提案を持っている場合は、ご返信ください。おかげ

他のヒント

デフォルトのコントローラ名としてHomeを持っていないために、単に<のhref = "https://stackoverflow.com/questions/849624/asp-net-actionresult-parameter-is-coming-back-null-always-when -passing列/ 849666#849666" は>デフォルトルートを変更します。

@Joe

あなたのApp_Startで/ RouteConfig.csは、あなたが好きなようにホームからデフォルトのコントローラの値を変更する必要がファイルます:

routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "NAME_OF_YOUR_HOME_CONTROLLER", action = "Index", id = "" }  // Parameter defaults
        );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top