aspnetcore/src/Mvc
Ryan Nowak 5a291d0bc0 Fix #4212 area ambient value page->controller
This change enhances our ambient value logic to also deal with required
values. In 2.2 we introduced a 'required values' semantic to allow route
values to appear "to the left" of a route pattern for the purpose of
ambient values copying. This is a complicated way of saying "when you
like to a different endpoint then discard the ambient values".

What we didn't consider is that some ambient values are special (like
area). So basically, we'll allow an ambient value to be used if it's
part of the required values - even if we've already decided to discard
the ambient values.

This is a pretty surgical fix and only affected the desired scenario
based on tests.

-----

I also removed an optimization that I think is broken. I put an earlier
optimization in place that attempted to count ambient values as they
were "seen" to try and avoid some extra copying. This copying loop has a
cost even if it no-ops which is what I was trying to prevent.

Unfortunately since we added 'required values' - it's now possible for
an ambient value to be double-counted, which makes this optimization
incorrect.
2019-02-11 15:58:33 -08:00
..
benchmarkapps
benchmarks
build
samples/MvcSandbox
src Remove obsolete APIs from MVC (#7444) 2019-02-11 15:27:38 -08:00
test Fix #4212 area ambient value page->controller 2019-02-11 15:58:33 -08:00
.editorconfig
Mvc.sln
README.md Add link to ASP.NET API Versioning project 2019-02-06 14:31:35 -08:00
Settings.StyleCop
build.cmd
build.sh
buildWithProcDump.cmd
runWithProcDump.ps1
startvs.cmd

README.md

ASP.NET Core MVC

Note: For ASP.NET MVC 5.x, Web API 2.x, and Web Pages 3.x (not ASP.NET Core), see https://github.com/aspnet/AspNetWebStack

Travis: Travis

ASP.NET Core 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 Core MVC includes many features that enable fast, TDD-friendly development for creating sophisticated applications that use the latest web standards.

ASP.NET Core MVC 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.

See the ASP.NET Core MVC documentation.

Related community projects:

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

Building from source

To run a complete build on command line only, execute build.cmd or build.sh without arguments. See developer documentation for more details.