RedirectToAction вызывает сообщение «Ни один маршрут не соответствует предоставленным значениям» после добавления контроC#

Место общения программистов C#
Ответить
Anonymous
 RedirectToAction вызывает сообщение «Ни один маршрут не соответствует предоставленным значениям» после добавления контро

Сообщение Anonymous »


У меня есть проект, в котором я использую метод RedirectToAction, чтобы уведомить приложение, когда на веб-сайт должны быть доставлены некоторые специальные данные. Поэтому я использую стандартный метод OnGet, чтобы решить, какие данные необходимо загрузить из базы данных

public void OnGet (int id, строковое действие) { если (действие == "LOAD_AC") { //загружается после создания нового набора данных.. делаем что-то особенное } } общественный IActionResult OnPostCreate() { если (DataSelected != null && DataSelected.Id == 0) { //создаем новый набор данных в базе данных вар рез = CreateData (DataSelected, cn); если (рез.Успех) { //Возвращаемся с новым идентификатором в метод OnGet, чтобы загрузить новый набор данных и отобразить его. return RedirectToAction("LOAD_AC", новый {id = newID}); } } Это работает нормально, пока я не добавлю контроллер в свой проект. Это может быть простой контроллер только с одним методом, и этот метод не вызывается в проекте, например:

пространство имен MyProject.Controller { [Маршрут("api/[контроллер]")] [Апиконтроллер] общедоступный класс SendData: ControllerBase { общественный IActionResult SendDataToSomewhere() { вернуть ОК(); } } } } Если контроллер добавлен, функция RedirectToAction завершается с ошибкой:

InvalidOperationException: ни один маршрут не соответствует указанным значениям.

Программа.cs оставлена ​​базовой для проверки проблемы:

var builder = WebApplication.CreateBuilder(args); // Добавляем сервисы в контейнер. builder.Services.AddRazorPages(); вар приложение = builder.Build(); // Настраиваем конвейер HTTP-запросов. если (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); // Значение HSTS по умолчанию — 30 дней. Возможно, вы захотите изменить это для рабочих сценариев, см. https://aka.ms/aspnetcore-hsts. приложение.UseHsts(); } app.UseHttpsRedirection(); приложение.UseStaticFiles(); приложение.UseRouting(); приложение.UseAuthorization(); приложение.MapRazorPages(); приложение.Выполнить(); Надеюсь, кто-нибудь поможет мне решить эту проблему или объяснит, почему это работает, а не работает после добавления контроллера?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»