asp.net mvc 2: приложение SportsStore: текущий запрос на действие неоднозначен - PullRequest
0 голосов
/ 19 мая 2010

Я работаю над примером SportsStore в главе 4 из следующей книги и застреваю ...

Pro Asp.net MVC Framework

Я получаю следующую ошибку:

Текущий запрос на действие «Список» для типа контроллера «ProductsController» неоднозначен между следующими методами действия: System.Web.Mvc.ViewResult List () для типа WebUI.Controllers.ProductsController System.Web.Mvc.ViewResult List (Int32) для типа WebUI.Controllers.ProductsController ..

Код моего роутера выглядит следующим образом:

        public static void RegisterRoutes(RouteCollection routes)
        {



            routes.MapRoute(
                null, // Route name
                "", // URL with parameters
                new { controller = "Products", action = "List", page=1 }
            );


            routes.MapRoute(
                null, // Route name
                "Page{page}", // URL with parameters
                new { controller = "Products", action = "List" }, // Parameter defaults
                new { page = @"\d+" }
            );
}

и код контроллера выглядит следующим образом:

public ViewResult List()
{
    return View(productsRepository.Products.ToList());
}

public ViewResult List(int page)
{
    return View(productsRepository.Products
                                .Skip((page - 1) * PageSize)
                                .Take(PageSize)
                                .ToList());
}

Что мне не хватает?

мой URL выглядит следующим образом:

http://localhost:1103/

или

http://localhost:1103/Page1

или http://localhost:1103/Page2

спасибо

1 Ответ

1 голос
/ 27 мая 2010

Удалите метод контроллера List(). В книге говорится, что вам нужно обновить существующий метод List() до того, который у вас есть List(int page).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...