2016-04-02 7 views
0

Neu in der Welt der Web-API und ich kann scheinbar keine benutzerdefinierte Ansicht zur Anzeige erhalten. Ich habe die Grundlagen gemacht, habe eine Methode in meinem Controller erstellt, die scheinbar korrigiert wird, wo ich sie anrufe. Ich bin mit MVC vertrauter und frage mich, ob ich etwas Grundlegendes vermisse? Die Ansicht gibt immer einen Fehler zurück, auf den ich nicht zugreifen kann.Anzeigen einer anderen Ansicht in ASP.Net-Web-API-Client

Die Action, in der generierten Homecontroller:

[HttpGet] 
public ActionResult SpotDetails() 
{ 
    ViewBag.Title = "Spot Details"; 
    return View(); 
} 

Der Link in dem Menü aufzurufen:

<ul class="nav navbar-nav"> 
    <li>@Html.ActionLink("SHOR //", "Index", "Home", new {area = ""}, null)</li> 
    <li>@Html.ActionLink("Index", "Index", "Home", new {area = ""}, null)</li> 
    <li>@Html.ActionLink("Spot Profile", "SpotDetails", "Home", new {area = ""}, null)</li> 
    <li>@Html.ActionLink("API", "Index", "Help", new {area = ""}, null)</li> 
</ul> 

ich die Links auf den Index sagen sollte und die api Hilfeseiten perfekt funktionieren .

Das ist mein RouteConfig ist, falls es an Schuld, ich habe es gar nicht berührt:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

Und schließlich mein WebApiConfig:

public static void Register(HttpConfiguration config) 
{ 
    // Web API configuration and services 
    config.Formatters.Remove(config.Formatters.XmlFormatter); 
    config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = 
     Newtonsoft.Json.ReferenceLoopHandling.Ignore; 

    // Web API routes 
    config.MapHttpAttributeRoutes(); 

    config.Routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 
} 

Bearbeiten - die Fehlermeldung, wenn der Link wird geklickt:

Server Fehler in '/' Anwendung.

Die Ressource kann nicht gefunden werden.

Beschreibung: HTTP 404. Die gesuchte Ressource (oder eine ihrer Abhängigkeiten) wurde möglicherweise entfernt, ihr Name wurde geändert oder ist vorübergehend nicht verfügbar. Bitte überprüfen Sie die folgende URL und vergewissern Sie sich, dass sie richtig geschrieben ist.

Angeforderte URL:/Home/SpotDetails

+0

Was sind die Details des Fehlers? –

+0

@StephenMuecke Hinzugefügt den genauen Fehler – ZippyPippy

+0

Sieht gut aus für mich. Sind Sie sicher, dass sich SpotDetails.cshtml in/Views/Home/befindet und genau so geschrieben wird? – smoore4

Antwort

1

Wahrscheinlich ist dies ein Problem mit Ihrer Startkonfiguration. Routen müssen in der Reihenfolge von am spezifischsten zu am wenigsten spezifisch registriert werden. Sie haben dies in Ihren Methoden RouteConfig.RegisterRoutes und WebApiConfig.Register berücksichtigt. Sie müssen jedoch auch WebApiConfig.Register vor RouteConfig.RegisterRoutes aufrufen, oder Ihre Default Route hat Vorrang vor allen Web-API-Routen.

WebApiConfig.Register(GlobalConfiguration.Configuration); 
RouteConfig.RegisterRoutes(RouteTable.Routes); 
Verwandte Themen