Sathish
Sathish

Reputation: 333

Passing multiple model to controller and bind the data to viewpage

how can i Pass multiple model to controller and bind the data to viewpage

i have list page in that page contains two tabs, one for active list and another one In active list.

how can i create a model and bind the data to viewpage.

how can i bind the data to view page, i used strong typed model

public class MyViewModel
{
    public IEnumerable<SomeViewModel> Active { get; set; }
    public IEnumerable<SomeViewModel> InActive { get; set; }
}

this is my view page code

<% foreach (var model in Model)
   { %>
     <tr>
       <td>
          <%= Html.ActionLink(model.TITLE, "Detail", new { id = model.EVENT_ID })%>
        </td>

I got an error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1061: 'System.Collections.Generic.IEnumerable<EventListing.Models.MyViewModel>' does not contain a definition for 'Active' and no extension method 'Active' accepting a first argument of type 'System.Collections.Generic.IEnumerable<EventListing.Models.MyViewModel>' could be found (are you missing a using directive or an assembly reference?)

Source Error:



Line 221:                    </thead>
Line 222:                    <tbody>
Line 223:                        <% foreach (var model in Model.Active)
Line 224:                           { %>
Line 225:                        <tr>

Upvotes: 1

Views: 1214

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1039538

You could have a view model that contains the two lists as properties:

public class MyViewModel
{
    public IEnumerable<SomeViewModel> Active { get; set; }
    public IEnumerable<SomeViewModel> InActive { get; set; }
}

and then pass an instance of MyViewModel to the view from the controller action.

Upvotes: 3

Related Questions