当前位置:  开发笔记 > 编程语言 > 正文

使用RedirectToAction时,routeValue会丢失引用属性

如何解决《使用RedirectToAction时,routeValue会丢失引用属性》经验,为你挑选了1个好方法。

所以如果我在第一个控制器中这样做:

  public class AController:Controller
    {
            public ActionResult ActionOne()
            {
                 MyObject myObj = new MyObject()
                 myObj.Name="Jeff Atwood";
                 myObj.Age =60;
                 myObj.Address = new Address(40,"Street");

                 return RedirectToAction("ActionTwo", "BController", myObj );

             }
    }

在第二个控制器中,myObj会出来,但地址将为空.

public class BController:Controller
        {
                public ActionResult ActionOne(MyObject obj)
                {
                     //obj.Address is null?

                 }
        }

这是预期的吗?任何方式呢?



1> Darin Dimitr..:

您可以使用TempData存储两个请求之间可用的对象.在内部,默认实现使用Session.

public class AController:Controller
{
    public ActionResult ActionOne()
    {
        MyObject myObj = new MyObject()
        myObj.Name = "Jeff Atwood";
        myObj.Age = 60;
        myObj.Address = new Address(40, "Street");
        TempData["myObj"] = myObj;
        return RedirectToAction("ActionTwo", "BController");

    }
}

public class BController:Controller
{
    public ActionResult ActionTwo()
    {
        MyObject myObj = TempData["myObj"] as MyObject;
        // test if myObj is defined. If ActionTwo is invoked directly it could be null
    }
}

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有