MVC - Nicht auflösen view (Controller und views werden in separaten Projekten)

Habe ich eine Lösung mit 4 Projekte:

  • AS.Core.Common (Referenzen: Daten, Internet)
  • AS.Core.Controllers (Referenzen: Common, Data, Web)
  • AS.Core.Data
  • AS.Core.Web (Referenzen: Daten)

In meinem Controller, überall, dass ich wieder ein Ansicht:

return View("~/Views/Home/Index.cshtml");

Ist es rot markiert und ich bekomme eine "Cannot resolve view '~/Views/Home/Index.cshtml'".

Alle vier Projekte erfolgreich erstellen aber wenn ich dann F5 gedrückt, bekomme ich die folgende:

Server Error in '/' Application.

Die Ressource kann nicht gefunden werden.

Beschreibung: HTTP 404. Die Ressource, die Sie suchen (oder eine seiner
Abhängigkeiten) wurde möglicherweise entfernt, hatte Ihren Namen geändert, oder ist
vorübergehend nicht verfügbar. Bitte Lesen Sie den folgenden URL, und stellen Sie
sicher, dass es richtig geschrieben ist.

Angeforderte URL: /

Version Information: Microsoft .NET Framework, Version:4.0.30319;
ASP.NET-Version:4.0.30319.17929

Wie kann ich meine Controller zu sehen, wie meine Ansichten, so dass Sie korrekt aufgelöst werden? Ich gehe davon aus das ist der Grund, warum ich die 404-Antwort.

Meine Global.asax.cs ungefähr so Aussehen:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        //Register the default hubs route: ~/signalr
        RouteTable.Routes.MapHubs();

        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}

Meine RouteConfig.cs (ich Hinzugefügt, namespaces, aber es scheint nicht geholfen)

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

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

Dies ist mein HomeController.cs

public class HomeController : Controller
{
    public ActionResult Index()
    {
        //return View("~/Views/Home/Index.cshtml");
        return View();
    }
 }
Das problem ist wahrscheinlich NICHT über die Suche nach dem Blick. Nicht finden, die anzeigen würde, dass eine weitere spezifische Fehler, nicht 404. Dein Fehler ist wahrscheinlich im Zusammenhang mit dem routing. Wie ist die routing-Tabelle in der globalen.asax?
Ich habe meine routing zu meinem ursprünglichen post.
Sorry, nicht klar genug 🙂 was ist in der RouteConfig.RegisterRoutes(RouteTable.Routen) - Methode.
Ich denke, Sie haben nicht einen HomeController.cs enthält die Klasse HomeController mit einer Methode mit dem Namen Index() ??
Gerade gesehen (im anderen Kommentar), dass Ihr Controller ist in einem anderen Projekt, richtig? Dann sollte man wohl hinzufügen namespaces: new string[]{"YourControllerProjsNameSpace"} in Ihrem MapRoute() .

InformationsquelleAutor Mithrilhall | 2013-06-05

Schreibe einen Kommentar