2016-12-16 2 views
1

Ich habe zwei Dateien namens FilmController. Eine im Controller-Ordner, in der meine Datenbankdaten angezeigt werden, und eine in einem Ordner namens API, mit der Benutzer Daten im JSON-Format anzeigen können.ASP.NET MVC5, zwei Controller, mit dem gleichen Namen in verschiedenen Ordnern

Meine Frage ist, in meiner Navigationsleiste habe ich eine Aktion Link-Element, die mit dem Controller Ordner Film-Datei verknüpft, bevor ich die API erstellt. Jetzt ist es nicht zu zielen. Gibt es trotzdem ein bestimmtes Ziel?

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

Ich möchte dies auf die Controller/Film-Datei verweisen.

+2

try Blick auf diese http://haacked.com/archive/2010/01/12/ambiguous-controller-names.aspx/ –

Antwort

1

Sie können den ActionLink-Helper nicht als Ziel für eine bestimmte Controller-Klasse verwenden.

Sie können jedoch in Ihrer RouteConfig.cs eine zweite Routendefinition erstellen. Lassen Sie diese Route auf einen anderen Namespace zeigen. Dann Code setzen Sie Ihre API in diesem Namensraum:

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 } 
); 
Verwandte Themen