如何通过通用路由重定向

本文关键字:路由 重定向 何通过 | 更新日期: 2023-09-27 18:29:23

我有动作

public ActionResult Edit(int id)

如果id为null,我需要重定向到操作索引。如何在路由中做到这一点?

我试过了:

routes.MapRoute(
                name: "Redirect from empty controller/edit to controller/list",
                url: "{controller}/Edit",
                defaults: new { controller = "Home", action = "Index" }
            );

但这于事无补。

如何通过通用路由重定向

嗯,不确定路由,但如果有帮助,你可以使用return RedirectToAction("index", "home");(其中index是你的操作方法,home是你想访问它的控制器)。

重定向很简单。您可以通过使id参数为null来检查它是否存在。您不需要路由配置。这将重定向用户到http://example.org/Home当他/她向http://example.org/Home/Edit

public ActionResult Edit(int? id)
{
    if (id == null)
    {
        return RedirectToAction("Index");
    }
    //other logic
}

如果您不希望重定向并执行索引操作,请使用http://example.org/Home/EditURL,你可以创建这样的路线:

routes.MapRoute("HomeEdit", 
                "Home/Edit", new {controller = "Home", action = "Index"});

只需确保此路由高于RouteConfig中的默认路由即可。