2016-12-16 15 views
1

FilmControllerという名前のファイルが2つあります。 1つはコントローラのフォルダにあり、1つはデータベースのデータを表示し、もう1つはAPIと呼ばれるフォルダにあり、ユーザーはjson形式でデータを表示できます。ASP.NET MVC5、2つのコントローラ、異なるフォルダに同じ名前を持つ

私のナビゲーションバーには、私がAPIを作成する前にコントローラフォルダのフィルムファイルにリンクされたアクションリンク項目があります。今は、どのターゲットをターゲットにするのかわからない。とにかく、特定のものを対象にしていますか?

<li>@Html.ActionLink("Films", "Index", "Film")</li> 

これをコントローラ/フィルムファイルに転送します。

+2

このhttp://hacked.com/archive/2010/01/12/ambiguous-controller-names.aspx/を参照してください。 –

答えて

1

ActionLinkヘルパーを使用して特定のコントローラクラスをターゲットにすることはできません。

ただし、RouteConfig.csに2番目のルート定義を作成することはできます。このルートが別の名前空間を指すようにします。次に、この名前空間にAPIコードを挿入します。

routes.MapRoute(
    "API", 
    "api/{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
    new[] { "MyMvcApp.Api" } 
); 

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 
関連する問題