RedirectToAction вызывает сообщение «Ни один маршрут не соответствует предоставленным значениям» после добавления контро ⇐ C#
-
Anonymous
RedirectToAction вызывает сообщение «Ни один маршрут не соответствует предоставленным значениям» после добавления контро
У меня есть проект, в котором я использую метод 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(); приложение.Выполнить(); Надеюсь, кто-нибудь поможет мне решить эту проблему или объяснит, почему это работает, а не работает после добавления контроллера?
У меня есть проект, в котором я использую метод 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(); приложение.Выполнить(); Надеюсь, кто-нибудь поможет мне решить эту проблему или объяснит, почему это работает, а не работает после добавления контроллера?
Мобильная версия