2009-10-08 4 views
0

Вот ошибка:ASP.NET MVC 2 Просмотр 2 маршрута Запрос не работает

The incoming request does not match any route. 

В основном я модернизировал от Preview 1 до Preview 2 и избавился от нагрузки избыточного материала по отношению к областям (как описано Филом Хааком). Это не сработало, так что я создал новый проект бренда, чтобы проверить, как его рассматривать в Preview 2. Файл Default.aspx больше не существует, который содержит следующее:

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

Погрешности я получил точку к линии httpHandler.ProcessRequest(HttpContext.Current); но в новых проектах ничто из этого не существует. Чтобы проверить его, я быстро удалил Default.aspx, но потом абсолютно ничего не сработало, я даже не получил никаких ошибок. Вот некоторые выдержки код:

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

Обратите внимание на зоны регистрации, как это то, что я использую.

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 = "" }); 
    } 
    } 
} 

Проверьте последние документы для получения дополнительной информации об этой части. Это регистрация области. Файлы Routes.cs находятся в корневой папке каждой области.

Приветствия

+0

К сожалению, я работал на примере, вы должны использовать 'Application_Start' не' App_Start'. Понятия не имею почему. – Kezzer

+0

Application_start будет автоматически подключаться ASP.NET. Найдите его на этой странице: http://msdn.microsoft.com/en-us/library/ms178473.aspx –

ответ

0

Согласно комментарий «К сожалению, я работал на примере, вы хотели использовать Application_Start не App_Start. Я понятия не имею, почему»

Смежные вопросы