2009-10-08 5 views
0

Voici l'erreur:ASP.NET MVC 2 Preview 2 Route demande ne fonctionne pas

The incoming request does not match any route. 

Fondamentalement, je mis à jour de Aperçu 1 à 2 Aperçu et me suis débarrassé d'une charge de choses redondantes par rapport aux zones (comme décrit par Phil Haack). Il ne fonctionne pas si je créé un tout nouveau projet pour vérifier comment son traité dans Aperçu 2. Le fichier Default.aspx n'existe plus qui contient les éléments suivants:

public void Page_Load(object sender, System.EventArgs e) 
{ 
    // Change the current path so that the Routing handler can correctly interpret 
    // the request, then restore the original path so that the OutputCache module 
    // can correctly process the response (if caching is enabled). 

    string originalPath = Request.Path; 
    HttpContext.Current.RewritePath(Request.ApplicationPath, false); 
    IHttpHandler httpHandler = new MvcHttpHandler(); 
    httpHandler.ProcessRequest(HttpContext.Current); 
    HttpContext.Current.RewritePath(originalPath, false); 
} 

L'erreur que je recevais des points à la ligne httpHandler.ProcessRequest(HttpContext.Current); Pourtant, dans les nouveaux projets, rien de tout cela n'existe. Pour le tester, j'ai rapidement supprimé Default.aspx mais ensuite rien n'a fonctionné, je n'ai même pas reçu d'erreur. Voici quelques extraits de code:

Global.asax.cs

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

namespace Intranet 
{ 
    public class MvcApplication : System.Web.HttpApplication 
    { 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     AreaRegistration.RegisterAllAreas(); 

     routes.MapRoute(
     "Default", 
     "{controller}/{action}/{id}", 
     new { controller = "Home", action = "Index", id = "" } 
    ); 
    } 

    protected void App_Start() 
    { 
     RegisterRoutes(RouteTable.Routes); 
    } 
    } 
} 

Notez l'enregistrement de la zone comme c'est ce que j'utilise.

Routes.cs

using System.Web.Mvc; 

namespace Intranet.Areas.Accounts 
{ 
    public class Routes : AreaRegistration 
    { 
    public override string AreaName 
    { 
     get { return "Accounts"; } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute("Accounts_Default", "Accounts/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" }); 
    } 
    } 
} 

Vérifiez les derniers documents pour plus d'informations sur cette partie. C'est pour enregistrer la zone. Les fichiers Routes.cs se trouvent dans le dossier racine de chaque zone.

Vive

+0

Désolé, je travaillais par l'exemple, vous êtes censé utiliser 'Application_Start' pas' App_Start'. Je ne sais pas pourquoi. – Kezzer

+0

Application_start sera automatiquement câblé par ASP.NET. Recherchez-le dans cette page: http://msdn.microsoft.com/fr-fr/library/ms178473.aspx –

Répondre

0

Comme par commentaire « Désolé, je travaillais par l'exemple, vous êtes censés utiliser Application_Start pas App_Start. Je ne sais pas pourquoi »

Questions connexes