Передайте параметры в индекс() в контроллере

#asp.net-core-mvc

Вопрос:

Я создаю основное приложение ASPgt;NET MVC, используя EF. В моем контроллере есть два метода Inventories Index() и OrderItem() . Когда вызывается метод OrderItem (), он выполняет какое-то действие, и как только действие завершено, я пытаюсь вернуться на страницу индекса. Index() нуждается во входном идентификаторе в качестве входного параметра, в противном случае он возвращает NOTFOUND().

Индекс() выглядит так, как показано ниже

 public async Tasklt;IActionResultgt; Index(int? id, string sortOrder, string searchString,  int? pageNumber, string currentFilter)  {  if (id == null)  {  return NotFound();  }  ......................  }   

Другой метод с тем же контроллером, где я пытаюсь вернуться к индексу, выглядит следующим образом

 return RedirectToAction("Index", "Inventories", new { customerID });    

Когда действие завершено и код пытается вернуть страницу индекса, URL похож https://localhost:44330/Inventories?customerID=460 , и я получаю ошибку «Не найдено».

введите описание изображения здесь

Как сделать так, чтобы перенаправление работало, чтобы URL выглядел так https://localhost:44330/Inventories/Index/460

Комментарии:

1. Не могли бы вы разместить здесь свой глобальный файл.asax и содержимое дочерних файлов, пожалуйста? Как зовут вашего контроллера?

2. Имя контроллера таково Inventories . У меня нет глобального файла.asax

3. Попробуйте выполнить поиск методом типа: общедоступные статические пустые маршруты регистрации(маршруты сбора маршрутов) с последовательностью типа: маршруты. Карта маршрута. У тебя есть немного? Что такое содержание метода?

4. Я не вижу RegisterRoutes способа. Это мое первое веб-приложение в .NET mvc core, использующее EF

Ответ №1:

попробуйте изменить это: верните перенаправление(«Индекс», «Запасы», новый { Идентификатор клиента });

к этому (если вы перенаправляете действие внутри одного и того же контроллера):

вернуть перенаправление(«Индекс», новый { Идентификатор клиента = Идентификатор клиента });

или: вернуть перенаправление(«Индекс», новый { «Идентификатор клиента» = Идентификатор клиента });

левая клавиша должна совпадать с именем параметра вашего маршрута, но она не может повлиять на имя вашей переменной