MVC RedirectToAction 跳转时传参问题

RedirectToAction方法提供了5个重载方法

1、单纯跳转,不带参数。

    string redirectUrl = "/List" ;
    return RedirectToAction(redirectUrl);

2、碰到需要传参的需求,想取原来参数传过去

1)、刚开始简单的这样拼接;

  string redirectUrl = "/List?planid=" + Request.Params["hdplanid"];
  return RedirectToAction(redirectUrl);

  

结果报错,并且浏览器中明显示乱码。

2)用 RedirectToAction 的另一个重载方法,参数直接在后面new,

      string redirectUrl = "/List" ;
      return RedirectToAction(redirectUrl, new
       {
        planid= Request.Params["hdplanid"]
       }

  

跳转成功,且参照自动拼接到url后面。

 but,下面的代码有问题,跳转时不会是:url?id=''这种形式。

    return RedirectToAction(url, new
                {
                    id = dto.ID
                });

参数不能是“id”,如果是传id,可以改个名字,否则会出现

解决方案:参数名改下。如id-->oid。

    return RedirectToAction(url, new
                {
                    oid = dto.ID
                });
原文地址:https://www.cnblogs.com/meng9527/p/9970475.html