Is it best practice to have different View models vs Update models? An update may contain many Drop Down lists, Id’s, text etc. Where a View model would really contain text, and maybe a couple of ids for selection purposes.
My question is: Should I pretty much always use a different model view Display screens and Update/Insert screens?
Delving deeper, would it be correct to say that a lot of the time, the model used for an Update screen, would differ from the model used for an Insert screen? For example, my database may have a non-nullable field called ‘Created User’. That would be blank on the Insert screen – and therefore, it would have to be nullable.
Maybe a silly example, because I guess you could populate the field with the current user before passing it to the view, but you get my question?
It depends. If you have different requirements for those views then you should use different view models. Following your description this seems to be the case: for example when creating an entity you usually won’t have an Id property on the CreateViewModel, whereas the UpdateViewModel would have this property. Of course you could use inheritance over your view models if this makes sense to avoid repetition.