- #2836 Part 1: Use existing property values when recursing in `MutableObjectModelBinder` - remove `ComplexModelDTO` because that indirection made fixing this issue more difficult and doesn't add value - started with an old closed PR (#2241) which did some of this work - correct `MutableObjectModelBinderTest` tests that exercised behaviour that can't occur - the old `dto.Results` dictionary was never incomplete; nor could it contain `null` values Part 2: Change `MutableObjectModelBinder` to pass complex property values into binding system - model binding no longer trounces nodes in the model tree that aren't bound - create model instances less often in `TryUpdateModel` scenarios - refactor `EnsureModel()` to `GetModel()` and use appropriately - reorder logic in `SetProperty()` and `AddToProperty()` to avoid copying to / from the same collection - also cleans up some code duplication nits: - clean up `MutableObjectModelBinderTest` - fix odd line wrappings and indentation - use `nameof()` more - use `string.Empty` more - simplify a couple of `Returns()` expressions - make assertions in `TryUpdateModelIntegrationTest` more readable - no need to work through `ModelStateDictionary.Keys` - also use `Length` instead of `Count()`; test code but we don't need Linq at all in that test class |
||
|---|---|---|
| .. | ||
| JsonPatchExtensionsTest.cs | ||
| Microsoft.AspNet.Mvc.Test.xproj | ||
| MvcOptionsSetupTest.cs | ||
| MvcServiceCollectionExtensionsTest.cs | ||
| RazorViewEngineOptionsSetupTest.cs | ||
| project.json | ||