【问题标题】:RedirectToAction not redirecting to Get Action of another controllerRedirectToAction 不重定向到另一个控制器的获取操作
【发布时间】:2022-02-01 01:52:47
【问题描述】:

您好,我有两个控制器及其操作方法和视图。 第一个控制器是:

[Authorize]
public class CarController : Controller
{
    private readonly ICarService carService;

    public EventController(ICarService carService)
    {
        this.carService= carService;
    }

    public IActionResult Create() 
        => View();

    [HttpPost]
    public async Task<IActionResult> Create(CarFormModel carFormModel)
    {
        if (!ModelState.IsValid)
        {
            return View(carFormModel);
        }

        var resultId = await this.eventService
            .CreateEventAsync(carFormModel);

        TempData["EventId"] = resultId;
        return RedirectToAction("Create","Manager");
    }

和我的另一个控制器:

[Authorize]
public class ManagerController : Controller
{
    private readonly IManagerService managerService;

    public ManagerController(IManagerService managerService) 
        => this.managerService= managerService;

    public IActionResult Create()
        => View();

    [HttpPost]
    public async Task<IActionResult> Create(ManagerCreateModel managerCreateModel)
    {
        var created = await this.managerService
            .CreateManagerAsync(managerCreateModel);
        if (!created)
        {
            return View(routeCreateModel);
        }
        return View("All");

    }

如果我成功创建汽车 Car 控制器的创建操作应该将我重定向到 ManagerController 的创建操作(GET 方法/第一个/),但它会将我重定向到第二个(POST 方法)。两个控制器在其文件夹中都有各自的视图。如何重定向到ManagerController的get方法?

【问题讨论】:

    标签: asp.net-core redirecttoaction


    【解决方案1】:

    更改动作名称

    public IActionResult CreateView()
            => View();
    

    并重定向

    return RedirectToAction("CreateView","Manager");
    

    【讨论】:

    • 这似乎不对。您不必重命名 get 操作。重载应该可以工作。
    • @JHBonarius 真正的应用程序可以有超过 10 个 Get 函数,带有一个字符串参数按 id、按名称、按电子邮件等选择。它不是教科书,而是真实的生活。没有人使用一个 get 并为每个 get 创建 10 个不同的控制器。创建 10 个动作更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2014-12-31
    相关资源
    最近更新 更多