微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP .NET MVC Redirecttoaction 将参数传递给索引但值为空

如何解决ASP .NET MVC Redirecttoaction 将参数传递给索引但值为空

无法获得控制器动作以将值传递给另一个。参数正确传递,但值保持为空。 代码:需要从 display() 获取 selectregister 值并基于它获取信息。信息被分配给 ViewList expandoobject 并传递给 Index()。

 [HttpGet]
        public ActionResult Index(Expandoobject vl)
        {
            ViewList = vl;
            if (((IDictionary<String,object>)ViewList).ContainsKey("Applist"))
            {
                ViewList.chk = "Yes";
            }
            else
            {
                getbasics(ViewList);
            }
            ViewList.RegList = GetAllregList(A,B);
            return View("Index",ViewList); //default view
        }
 [HttpPost]
        public ActionResult display(string selectRegister)
        {
            ViewList.reg = selectRegister;
            ViewList.Applist = ReadAPIinfo(A,selectRegister);
            return RedirectToAction("Index",ViewList);
        }

在上面的代码中,参数 ViewList.reg、ViewList.Applist 通过 ExpandoObject vl 作为空值传递。为了绕过这一点,我目前将所需的值存储在会话变量中,并以一种迂回的方法进行解析。想了解 MVC.TIA 中的参数传递是如何工作的(对于动态 expandoobject)! 注意:我使用了其他一些类似线程中建议的 TempData[] 解决方案,但不适用于我的 ExpandoObject 变量。

解决方法

因为两个动作都在同一个控制器中,所以最简单的方法是

public ActionResult Display(string selectRegister)
        {
          .....
            return Index( ViewList);
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。