如何通过通用路由重定向
本文关键字:路由 重定向 何通过 | 更新日期: 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中的默认路由即可。