I have two model classes, each is a table in a database. One model is called \'Clothes\' and the other \'Shoes\'.
I want to display the contents of each table in the sa
Either make a view model class which has both the class as its object. It would be then type safe.
public class ViewModelForDisplay
{
public Clothes Clothes {get; set;}
public Shoes Shoes {get; set;}
}
//on Controller
Clothes objClothes = GetClothes();
Shoes objShoes = GetShoes();
ViewModelForDisplay objViewModel = new ViewModelForDisplay() {Clothes = objClothes, Shoes= objShoes }
The other easy way to do it by using ViewBag.It uses the dynamic feature that was added in to C# 4. It allows an object to dynamically have properties added to it. Its also Type Safe
ViewBag.Shoes= objShoes ;
ViewBag.Clothes= objClothes ;
You could also use ViewData to pass objects to html. BUt this would not be type safe. It requires casting
ViewData["Clothes "] = objClothes ;
ViewData["Shoes "] = objShoes ;
I have found this article very interesting :
https://workspaces.codeproject.com/user-10826818/using-multiple-models-in-a-view-in-asp-net-mvc-4
It presents different ways to send multiple models to a view :
Make your own class aka View Model and have it composed of both models.