2013-06-24 12 views
6

Ho appena creato un nuovo progetto ASP.NET MVC 3 con il motore Razor. Ho aggiunto un controller alla cartella controller e quindi a homController.cs ho aggiunto una vista.Errore server nell'applicazione '/' in ASP.NET MVC 3 con motore Razor

The View (index.cshtml) ha solo questo codice:

@{ 
    ViewBag.Title = "Home"; 
} 

<h2>Home</h2> 

E quando inizio il debug mi mostra questo errore:

Server Error in '/' Application. 
The resource cannot be found. 

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly. 

Requested URL:/

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.225 

Qual è il problema?

+0

Immagino che il percorso sia sbagliato: qual è il nome del controller? – glosrob

+0

homController.cs è il nome del controller ... il percorso quando eseguo il debug è: 'http: // localhost: 13628 /' e non è workign! – user2478115

+0

Quando creo un'applicazione asp.net Web (senza MVC) e la faccio il debug, funziona perfettamente .... Non so perché l'errore sta arrivando! – user2478115

risposta

6

Potrebbe controllare le App_Start/RouteConfig.cs, è necessario disporre di questo codice per un controller chiamato homController.cs:

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

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

suppongo, il tuo primo nome del controller non è 'casa', in modo da devi cambiare il nome del controller predefinito!

+0

puoi dirmi dove trovare App_Start/RouteConfig.cs ??? Ho cercato ogni cartella in Esplora soluzioni, ma non riesco a trovarla cosa stai dicendo! – user2478115

+0

Sono andato al Global.asax, e ho trovato il codice che mi hai scritto .... cosa dovrei cambiare? il nome del mio controller è: homController.cs – user2478115

+1

Se il nome del tuo controller è homController, devi cambiare il valore del controller predefinito in "hom". Ho aggiornato la mia risposta –

2

Controllare le voci di routing in Application_Start in global.asax poiché si utilizza MVC 3. come suggerito da "Joffrey Kern", è necessario configurare i percorsi.

assicurati inoltre che il controller sia denominato "HomeController" e che tu disponga di un metodo pubblico denominato "Indice" che restituisca un oggetto ActionResult.

2

in ASP .NET MVC 3 i percorsi sono definiti nel global.asax

si può trovare che nella root del sito.

Di default assomiglia a questo:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 
} 

Questo significa che quando si chiama la radice sito senza parametri, utilizza i valori predefiniti - in questo caso home/index.

Quindi è necessario assicurarsi che:

  • avere un controller chiamato home
  • un Action chiamato index che restituisce un ActionResult

In alternativa è possibile aggiornare i valori di default negli itinerari , anche se sei appena agli inizi, non lo consiglierei.

-1

questo è Akula ravinder

Si prega di trovare questa risposta

  • Fare clic destro sul vostro progetto MVC

  • Scegliere "Proprietà"

  • Selezionare la scheda "Web"

  • Selezionare "Pagina specifico"

  • Supponendo di avere un controller chiamato HomeController e di un metodo di azione chiamato Indice, digitare "casa/index" invece di home/index. cshtml nella casella di testo corrispondente al pulsante di opzione "Pagina specifica" .

0

Non deve essere tuoi percorsi ... Potrebbe essere configurazioni errate in Web config

0

Se questo errore vivamente si raccomanda di cambiare il nome della classe pubblica. Dare un nuovo nome come "HomeController":

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MyFirstMVC.Controllers 
{ 
    public class HomeController : Controller 
    { 

     // GET: /First/ 

     public string Index() 
     { 
      return "Jay Swaminarayan"; // this string will be display at your run time!!! 
     } 

    } 
} 
Problemi correlati