Use View Models that way you can pass as many models to your view as it needs. I also use view models to handle the validation of POSTs etc. So in your case you can do something like:
Your View Model
public class MyViewModel
{
public string PageTitle { get; set; }
public DocumentList DocList { get; set; }
// You could use your DocumentList object here, or if you
// don't want to, just pass a List<T> of Document
public List<Document> DocList { get; set; }
}
Your View
@model MyViewModel
@{
ViewBag.Title = Model.PageTitle;
}
@foreach (var doc in Model.DocList)
{
<p>doc.Content</p>
}
There's MUCH more to MVC than this though, such as Display and Editor Templates so I'd have a look online for some good tutorials that cover the MVC essentials.
Edit
To be fair, having read this back you're already kind of following this principle it's just that DocumentList is your view model (and you don't really need a GetDocs method, just have a collection property, unless you're performing logic on the collection before returning that is).
Hopefully this answer helps clarify a few things for you though?
[Required]attributes or infact any attribute. All the validations should be made on the ViewModel properties and not on Model properties. I believe all the answers also remain valid.This is in regard to thesimple best practices.