Go to file
Doug Bunting a3b07dacdb Rework `ViewDataDictionary` constructors to ensure `ModelMetadata` is never `null`
- `ViewDataDictionary<TModel>` constructors now pass `typeof(TModel)` to base
  `protected` constructors
 - move type compatibility checks into base `ViewDataDictionary`
 - remove `ViewDataDictionary<TModel>.ModelMetadata` override
- don't retrieve `ModelMetadata` twice in a single constructor invocation
- remove newly-unused `protected` properties and use `private` fields in copy
  constructors

Address longstanding problems found (see #1466)
- avoid reusing `ModelMetadata` after `Model` value changes
 - reset `ModelMetadata` backing field in `Model` setter
 - `Model` and `ModelMetadata.Model` could previously get out of sync
- carry `ModelMetadata` forward from an outer scope only if `Model` matches
 - previously two scopes could have different `Model` values but share their
   `ModelMetadata` (and `ModelMetadata.Model`)
 - related to previous item but didn't require `Model` setting; switching
   to a property of the same type as containing `Model` was enough
- avoid NRE if `ViewDataDictionary<int>.Model` is read before it's written
 - problem affected all non-`Nullable` value types
- `ViewDataDictionary.ModelMetadata` setter should throw if value is `null`

nits:
- add and reword doc and code comments
 - `ViewDataDictionary<TModel>` constructors should only inherit base's
   parameter descriptions; have more information in the derived class
- make a few `ViewDataDictionary` properties get-only
- clean up `using` statements in `ViewDataDictionary<TModel>`
- make two constructors `internal`
2014-10-29 19:03:58 -07:00
samples Revert "Added a functional test for view precompilation" 2014-10-28 19:14:50 -07:00
src Rework `ViewDataDictionary` constructors to ensure `ModelMetadata` is never `null` 2014-10-29 19:03:58 -07:00
test Fix for #1052 - ViewComponents should support fully qualified names 2014-10-29 17:34:01 -07:00
.gitattributes
.gitignore
CONTRIBUTING.md
LICENSE.txt
Mvc.NoFun.sln
Mvc.sln Revert "Added a functional test for view precompilation" 2014-10-28 19:14:50 -07:00
NuGet.Config
README.md
Settings.StyleCop
build.cmd
build.sh
global.json
makefile.shade

README.md

ASP.NET MVC

ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that enables a clean separation of concerns and gives you full control over markup for enjoyable, agile development. ASP.NET MVC includes many features that enable fast, TDD-friendly development for creating sophisticated applications that use the latest web standards.

ASP.NET MVC in ASP.NET vNext includes support for building web pages and HTTP services in a single aligned framework that can be hosted in IIS or self-hosted in your own process.

This project is part of ASP.NET vNext. You can find samples, documentation and getting started instructions for ASP.NET vNext at the Home repo.