Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use DisplayForModel() to show a list of Customers?

Tags:

asp.net-mvc

Normally we use DisplayForModel or EditorForModel to display and edit a single Customer object, respectively.

How to display a list of Customers using these templating scheme?

like image 834
xport Avatar asked Jan 28 '11 06:01

xport


2 Answers

Assuming you have a collection of customers in your view model

public class MyViewModel
{
    public IEnumerable<Customer> Customers { get; set; }
}

you could use the following in your view:

@Html.DisplayFor(x => x.Customers)

and then in the editor/display template (~/Views/Home/DisplayTemplates/Customer.cshtml or ~/Views/Shared/DisplayTemplates/Customer.cshtml):

@model AppName.Model.Customer
<div>@Model.Name</div>

The Customer partial will be then rendered for each element of the customers collection of your main model. The important thing is the naming convention: the partial should be situated in a DisplayTemplates subfolder and called the same as the collection type (Customer).

like image 113
Darin Dimitrov Avatar answered Oct 12 '22 10:10

Darin Dimitrov


How about following Haack's tutorial ?

As great as this feature is, there is one template that’s conspicuously missing. ASP.NET MVC does not include a template for displaying a list of objects in a tabular format.

Earlier today, ScottGu forwarded an email from Daniel Manes (what?! no blog! ;) with a question on how to accomplish this. Daniel had much of it implemented, but was trying to get over the last hurdle. With Brad’s help, I was able to give him a boost over that hurdle. Let’s walk through the scenario.

like image 23
nulltoken Avatar answered Oct 12 '22 12:10

nulltoken