Вот ошибка: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 находятся в корневой папке каждой области.
Приветствия
К сожалению, я работал на примере, вы должны использовать 'Application_Start' не' App_Start'. Понятия не имею почему. – Kezzer
Application_start будет автоматически подключаться ASP.NET. Найдите его на этой странице: http://msdn.microsoft.com/en-us/library/ms178473.aspx –