0

In my controller code, I need to return two objects to the Details view (details.cshtml)

Below is the Controller code:

FinishProductCompleteForm FinishProductCompleteFormDetails = FinishProductCompleteFormDAL.GetFPCompletelDetailsByID(objFinishProductCompleteForm);

FinishProductCompleteForm objRawMatDetails = FinishProductCompleteFormDAL.GetDashboardInfo(FinishProductCompleteFormDetails);

return View(FinishProductCompleteFormDetails);

Currently I just can return FinishProductCompleteFormDetails only, but I need to return both FinishProductCompleteFormDetails and objRawMatDetails.

ekad
  • 14,436
  • 26
  • 44
  • 46
Doherty
  • 53
  • 3
  • 15
  • sir, i don't think that is a similar question..because these 2 objects were in the same class (FinishProductCompleteForm).. @RobertMoskal – Doherty Jun 22 '15 at 02:56
  • 2
    It exactly the same - read the answers in the link. There are multiple ways to do this including creating a view model containing properties for `FinishProductCompleteFormDetails` and `objRawMatDetails` –  Jun 22 '15 at 03:05
  • You can use viewmodel if you don't want viewmodel return list of objects and in view accept a list of objects of your class. Have a look at this http://stackoverflow.com/questions/27517239/using-multiple-models-in-a-single-controller/27518525#27518525 – Mairaj Ahmad Jun 22 '15 at 03:10

1 Answers1

0

you can:

set view model to IEnumerable<FinishProductCompleteForm> and return list ob object to your view from action like this:

return View(
    new List<FinishProductCompleteForm>()
   { 
       FinishProductCompleteFormDetails, 
       objRawMatDetails 
   });

or you can:

create custom model with different fields.

public Class CustomModel
{
    public FinishProductCompleteForm FirstProp { get; set; }
    public FinishProductCompleteForm SecondProp { get; set; }
}

and in your action return new custom model.

return View(
    new CustomModel 
    {
        FirstProp = FinishProductCompleteFormDetails,
        SecondProp = objRawMatDetails
    }
); 
aleha_84
  • 8,309
  • 2
  • 38
  • 46