使用RedirectToAction使用RouteValueDictionary传递复杂对象

时间:2014-06-19 06:36:38

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我尝试使用RedirectToAction方法将复杂对象(对象内的对象)传递给我的操作方法,但它返回null。有没有办法使用RouteValueDictionary?

我的模特:

public class ModelUser
    {
        public UserLine User { get; set; }
    }

    public class UserLine
    {

        public int? UserID { get; set; }

        public string FirstName { get; set; }

        public string MiddleName { get; set; }

        public string LastName { get; set; }

        public string Email { get; set; }

}

我的行动方法:

[HttpPost]
        public async Task<ActionResult> Create(UserCreate model)
        {
            var valDTORegister = new RegisterLine() { Email = model.Email, Password = model.Password, OwnerType = model.OwnerType };
            var result = await PostRequest<RegisterLine, UserLine>("http://localhost:10853/", "api/user/Create", valDTORegister);

            var usermodel = new ModelUser();
            usermodel.User = result;

            return RedirectToAction("ProfileUser", new RouteValueDictionary(usermodel));

        }

        public ActionResult ProfileUser(ModelUser usermodel) //User object is null
        {
            return View();
        }

我尝试使用RouteValueDictionary仅传递UserLine对象,并且值已正确传递给我的ProfileUser方法。这很好,但我想传递整个ModelUser对象,因为我可能需要在其中添加更多对象。

1 个答案:

答案 0 :(得分:0)


您可以将ProfileUser页面连接到模型ModelUser,然后像这样调用此视图:

return View("ProfileUser", usermodel);

动作shold是没有参数

public ActionResult ProfileUser()
{
   return View();
}

所有数据都在ProfileUser的模型(“ModelUser”)中