如何在一个视图中返回和处理两个不同的模型?

时间:2017-11-04 08:02:05

标签: c# asp.net-mvc c#-4.0

我有一个控制器,我将用户对象传递给基于用户的另一个视图中基于故事模型的视图模型。精细。现在我将用户对象返回到视图(基于 Stories 模型的对象),并希望在那里使用其属性,但因为它基于故事模型所以它期望< strong> Stories 对象并抛出不匹配错误。

我该如何处理?像两者一样。

控制器(已向其传递用户对象)

 [HttpGet]
        public ActionResult GetImagesStories(Users u)
        {

            listofStories = bo.GetAllImages();
            ViewBag.Grid = listofStories;

            return View("GetImagesStories", u);
        }

传递它的控制器。

 [HttpPost]
        public ActionResult Authenticate(Users u)
        {
            if (basicOps.getUsersLogin(u.UserName, u.Password)) 
            {
               u.UserID = 80909;
               return RedirectToAction("GetImagesStories", "Stories", u);

            }

            return View("Authenticate");


        }

第一个控制器返回的视图包含:

@model HimHer.Models.Stories

1 个答案:

答案 0 :(得分:0)

您可以在Users viewModel上拥有属性User(s),而不是将Stories解析为ViewModel。

我在使用后通常将我的模型命名为:

用作接入http调用的参数的模型,如:UserRequestModel 视图中使用的模型,如:UserViewModel 在ajax / json上使用的模型返回:UserResponseModel

因此,如果我的ViewModel需要来自RequestModel的数据,我会传递这些属性。