RedirectToAction
是ASP.NET MVC框架中的一个方法,用于将用户重定向到另一个控制器动作。它返回一个RedirectToRouteResult
对象,告诉MVC框架将HTTP响应状态码设置为302(临时重定向)并将用户引导到指定的动作。
// 重定向到Home控制器的Index动作,并传递id和name参数
return RedirectToAction("Index", "Home", new { id = 123, name = "John" });
var routeValues = new RouteValueDictionary
{
{ "id", 123 },
{ "name", "John" }
};
return RedirectToAction("Index", "Home", routeValues);
对于复杂对象,通常建议:
// 存储到TempData
TempData["User"] = user;
return RedirectToAction("Profile");
然后在目标动作中:
public ActionResult Profile()
{
var user = TempData["User"] as User;
// 使用user对象
}
原因:可能是参数名称不匹配或类型不兼容 解决:检查目标动作方法的参数名称和类型是否与传递的参数一致
原因:复杂对象无法通过URL序列化传递 解决:使用TempData或Session存储复杂对象
原因:包含特殊字符的参数未正确编码 解决:确保对特殊字符进行URL编码
var encodedName = HttpUtility.UrlEncode(name);
return RedirectToAction("Index", "Home", new { name = encodedName });
// 控制器中的源动作
public ActionResult ProcessForm(string username, int age)
{
// 处理表单数据...
// 重定向到另一个动作并传递参数
return RedirectToAction("Display", "User", new {
username = username,
userAge = age
});
}
// 目标控制器中的动作
public ActionResult Display(string username, int userAge)
{
ViewBag.Username = username;
ViewBag.Age = userAge;
return View();
}
通过以上方法,您可以灵活地在ASP.NET MVC应用程序的不同动作之间传递参数。
没有搜到相关的文章