Текущий запрос на действие "Индекс" для контроллера типа "DinnersController" неоднозначен между следующими методами действия

Я получаю эту ошибку после попытки поддержки пейджинга.

Я нахожусь на этом этапе учебника HTML: http://nerddinnerbook.s3.amazonaws.com/Part8.htm

2 ответа

Решение

Полученная ошибка говорит о том, что ASP.NET MVC обнаружил два действия с одинаковым именем и не может выбрать, какое из них использовать.

Если у вас есть два Index-действия в вашем DinnersController.cs:

public ActionResult Index() {

а также:

public ActionResult Index(int? page) {

Затем вы должны удалить первое действие. так как второй является "обновленной" версией первого. Второе действие принимает запросы:

/ Обеды

/ Диннерс? Страница =2

/ Обеды / Index

/ Обеды /Index? Страница =2

И с изменением в RegisterRoutes он также принимает запросы:

/ Диннерс / Страница /2

Вы можете иметь два Действия с одним и тем же именем, при условии, что одно предназначено для сохранения (обратной передачи), где вы украсите действие сохранения с помощью [AcceptVerbs(HttpVerbs.Post)] или просто [HttpPost]

MVC не поддерживает перегрузку методов действия в вашем контроллере. Невозможно иметь два действия Index() с разными сигнатурами методов на одном контроллере.

Для того, чтобы пример, который вы тестируете, работал, вы должны удалить действие Index(), которое не принимает никаких параметров, и заменить его действием, которое принимает значение NULL в качестве параметра.

Другие вопросы по тегам