我正在尝试使用以下代码从http://mywebsite/Home/执行RedirectToAction:
return RedirectToAction("Index","Profile", new { id = formValues["id"] });
上面的代码将成功地带我去
http://mywebsite/Profile/Index/223224
我需要做些什么才能将其重定向到
http://mywebsite/Profile/223224
谢谢。
我想出了如何做到这一点。
首先,我必须添加自定义路由规则:
routes.MapRoute("Profile", "Profile/{id}", new { controller = "Profile", action = "Index", id = UrlParameter.Optional });
然后我可以做以下事情:
[AcceptVerbs(HttpVerbs.Post)]
public RedirectResult Index(FormCollection formValues)
{
return Redirect("~/Survey/" + formValues["Id"]);
}
答案 0 :(得分:1)
我认为你可以做到:
return RedirectToAction("","Profile", new { id = formValues["id"] });
答案 1 :(得分:1)
我偶然发现了完全相同的问题。通过使用路由名称重定向来解决它:
return RedirectToRoute("profile", new { action = "" });
所有变量都会被记住,所以如果你有像/ {x} / {y} / Profile / {action} / {id}之类的网址,你只需像我一样清除行动。
答案 2 :(得分:0)
假设您的/控制器名为“Home”
Return RedirectToRoute(new {controller="Home",action="Index",id=formValues["id"]});
嗯,我想这仍然是/ Index / num虽然......我不确定你是否可以在没有自定义路由的情况下将索引位遗漏掉。