At the moment this is what I have in my HomeController:
[HttpPost]
public ActionResult Index(HomeFormViewModel model)
{
...
...
TempData["Suppliers"] = service.Suppliers(model.CategoryId, model.LocationId);
return View("Suppliers");
}
This is what I have in my SupplierController:
public ViewResult Index()
{
SupplierFormViewModel model = new SupplierFormViewModel();
model.Suppliers = TempData["Suppliers"] as IEnumerable<Supplier>;
return View(model);
}
This is my Supplier Index.cshtml:
@model MyProject.Web.FormViewModels.SupplierFormViewModel
@foreach (var item in Model.Suppliers) {
...
...
}
Instead of using TempData is there a different way to pass objects to a different controller and its view?
Why don’t you just pass those two ID’s in as parameters, then call the service class from the other controller? Something like:
Have your
SupplierControllermethod like so:Then, I’m assuming you’re calling your view from within the
Supplierview via a link of some sort? You can do: