我有行动
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" }
);
但没有帮助。
答案 0 :(得分:0)
嗯,不确定路由,但如果它有帮助你可以使用return RedirectToAction("index", "home");
(其中index是你的动作方法,home是你想要访问它的控制器)。
答案 1 :(得分:0)
重定向很简单。您可以通过使其可为空来检查是否存在id
参数。您不需要路由配置。这会在用户向http://example.org/Home
public ActionResult Edit(int? id)
{
if (id == null)
{
return RedirectToAction("Index");
}
//other logic
}
如果您不想重定向并使索引操作响应带有http://example.org/Home/Edit网址的请求,您可以创建如下路线:
routes.MapRoute("HomeEdit",
"Home/Edit", new {controller = "Home", action = "Index"});
只需确保此路线高于RouteConfig中的默认路线。