2010-04-24 4 views
0

Я создал область с именем «Admin». Я создал также контроллер (Страницы) и представление (Список) в этих областях.ASP.NET MVC 2 Области, странное поведение маршрутизации

Когда я запустил приложение и ввел URL-адрес «/ Admin/Pages/List», я получаю. Невозможно найти ресурс.

Когда я ввожу/Страницы/List, метод действий поражен, но вид не найден, потому что приложение ищет в неправильных каталогах

~/Views/Страницы/List.aspx ~/Views/Страницы/List.ascx ~/Views/Shared/List.aspx ~/Views/Shared/List.ascx

вид находится в/Admin/Pages/List.

Мой конф маршрутизации для области администратора:

public class AdminAreaRegistration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get 
     { 
      return "Admin"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Admin_default", 
      "Admin/{controller}/{action}/{id}", 
      new { controller= "Pages",action = "Index", id = "" } 
     ); 
    } 
} 

ответ

2

Вы добавили AreaRegistration.RegisterAllAreas(); к Global.asax.cs

Это должно работать, прежде чем существующие routes.MapRoute звонки

Edit:

Просто посмотрел на мою область администратора, и маршрутизация выглядит так:

context.MapRoute(
       "Admin_Default", 
       "Admin/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 
+0

Да, это есть. Но это все равно не работает. Правильно ли я прав на маршрутизацию? URL для областей должен выглядеть как www.domain.com/Area/Controller/Action/Parameter? – user137348

+0

@ user137348: Thats выглядит правильно ... –

+0

Ничего. Я обнаружил, что вызывает странное поведение. Раньше я копировал контроллер из корня в область только с помощью перетаскивания. Непосредственное пространство имен вызывает проблему. Виноват. В любом случае спасибо за ваше время .. – user137348