I have an MVC3 C#.Net web app. I have two views that display the same HTML table. However, each View represents a different Model. View 1 = “ProposalEdit”, View 2 = “DocEdit”. Both the Proposal model and the Doc model have a property:
ICollection<Deliverable> Deliverables.
In each of the Edit Views, I display the Deliverables belonging to the Model of that View. It’s identical code in each of the Edit Views, only the Model behind the Edit Views is different. So, there’s a lot of duplicate code.
How can I modularize this in order to reduce the duplicate code?
@Mike, that is exactly what I would do. The main point though is having the DisplayTemplates for each model. Even a DateTime object could have a DisplayTemplate if you wanted to.
Edit:
Here’s an example of using the DisplayTemplate for just the Deliverables model
You would also, of course, have a template under
~\Shared\DisplayTemplates\Deliverables.cshtmlor for editing under~\Shared\EditorTemplates\Deliverables.cshtml