powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Контроллер не работает. Почему?
7 сообщений из 7, страница 1 из 1
Контроллер не работает. Почему?
    #38494654
maxapet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть приложение на MVC3. Добавил контроллер, метод Index, добавил View для него. Когда пытаюсь обратиться к этой странице, получаю ошибку 404 - "Страница не найдена". Смотрел на youtube ролик Гайдара Макданурова - всё делаю так же, как он: у него работает, у меня - нет. В чём может быть дело?

Вроде бы, всё правильно сделал. Вот код:
объявление контроллера:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class MyController : Controller
{
  private readonly IRepository _repository;
 
  public MyController()
  {
    _repository = new MsSqlRepository();
  }

  public ActionResult Index()
  {
    if (Request.IsAuthenticated)
    {
    }
    return View();
  }
}




роутинг:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  routes.MapRoute(
  "AccountDefault", // Route name
  "Account/{action}", // URL with parameters
  new { controller = "Account" }
  );

  routes.MapRoute(
  "AjaxDefault", // Route name
  "Ajax/{action}/{id}", // URL with parameters
  new { controller = "Ajax", id = UrlParameter.Optional } // Parameter defaults
  );
 
  routes.MapRoute(
  "OrderDefault", // Route name
  "Order/{action}/{id}", // URL with parameters
  new { controller = "Order", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
  new[] { "MySite.Mvc3.Controllers" }
  );
 
  routes.MapRoute(
  "Default", // Route name
  "{action}/{id}", // URL with parameters
  new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
  );

  routes.MapRoute(
  "MyDefault", // Route name
  "My/{action}/{id}", // URL with parameters
  new { controller = "My", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
  new [] {"MySite.Mvc3.Controllers"} // без этой строки тоже не работает
  );



В каком направлении копать?
...
Рейтинг: 0 / 0
Контроллер не работает. Почему?
    #38494722
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvc очень трудно изучать
давайте лучше возвращайтесь на webforms
у нес есть печеньки :)
...
Рейтинг: 0 / 0
Контроллер не работает. Почему?
    #38494746
maxapet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за вкусное предложение, но обратной дороги нет. :)
...
Рейтинг: 0 / 0
Контроллер не работает. Почему?
    #38494811
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Контроллер не работает. Почему?
    #38494823
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поменяй местами Default & MyDefault.

Зачем нужно регистрировать по отдельности каждый контроллер, если достаточно общего варианта с

{controller}/{action}/{id} ?
...
Рейтинг: 0 / 0
Контроллер не работает. Почему?
    #38494882
maxapet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, спасибо, прочёл. Очень полезно для общего понимания..
...
Рейтинг: 0 / 0
Контроллер не работает. Почему?
    #38494897
maxapet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,спасибо большое! Действительно, всё дело было в порядке регистрации контроллеров.
И да, действительно, отлично работает короткий вариант:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Common", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { action = "Index", id = UrlParameter.Optional }, // Parameter defaults
                new[] {"GmTrade.Mvc3.Controllers"}
            );

            routes.MapRoute(
                "Default", // Route name
                "{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );
        }
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Контроллер не работает. Почему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]