Commit Graph

36 Commits

Author SHA1 Message Date
Ryan Nowak 3d448f7197 Fix #5055 use of page parameter (#7441)
This change introduces some new heuristics to make it easier to use
'page' or other resevered parameter names as parameters in URL
generation.

--

The main change here is to allow the link generation tree to *ignore* a
value passed in to URL generation when it conflicts with an endpoint's
required values.

The main concern of this feature area is "how do we tell whether you are
linking to an action or a page?". Routing attempts to do the right thing
will requiring very little from the user in terms of expressing intent.

In this case, we try to tell the difference between an attempt to generate
a link to an action due to the presence of the 'action' parameter and
absence of the 'page' parameter. This obviously doesn't work when you
want to use 'page' as a non-reserved parameter in an action. The same
case occurs for pages, but users are already used to the idea that
'action' is a reserved word in MVC.

We can loosen this restriction when the value that's supplied for 'page'
is known not to be any existing value of the 'page' route value.

This approach seems somewhat reasonable but has many of the problems inherent
to this area. When it fails (the value you want to use for 'page' causes
a conflict) - it's going to be esoteric and hard to understand.
2019-02-22 11:44:43 -08:00
Javier Calvarro Nelson 2d9cba86fd [Components] Prerrendering startup experience (#7770)
[Components] Prerrendering startup experience
* Introduces an IComponentPrerrenderer to handle Prerrendering
  * MVC registers a basic static prerrrenderer.
  * Components registers a more feature complete prerrender that will
    handle reconnection to the original circuit after prerrendering in
    the future to allow for prerrendered interactive components.
* Removes UseRazorComponents
  * Removes the SPA fallback in favor of a catch all route in
    Index.cshtml
  * Moves the framework files to be served by the default StaticFiles
    middleware in the pipeline by way of plugging specific providers
    through options.
  * Lifts UseSignalR(r => r.MapHub<ComponentHub>()) into startup and
    replaces it with a shorthand for MapHub using endpoint routing.
  * Adds extension methods to map components to selectors for a given
    hub.
* Updates the razor component templates to include prerendering and use a razor page as the entry 
   point.
2019-02-21 16:26:44 -08:00
Pranav K 51e2bea403
Throw if CORS policy is configured to allow credentials and any origin (#7751)
* Throw if CORS policy is configured to allow credentials and any origin

Fixes https://github.com/aspnet/AspNetCore/issues/3106
2019-02-21 09:06:00 -08:00
Nate McMaster 85ae18c723
Make Visual Studio 2019 a prerequisite to building this repo (#7005)
Changes:

* Make Visual Studio 2019 a prerequisite for building this repo
* Update .sln files
* Update Windows SDK to 17134
* Update developer docs
* Disable ANCM tests
* Update to .NET Core SDK 3.0 Preview 2
* Use Microsoft.NET.Sdk.Razor as a package consistently accross the repo
* React to changes in metadata from Microsoft.NETCore.App
* React to changes in .NET Core SDK
* Attempt to workaround CodeCheck.ps1 failure which doesn't repro locally or on different agents. Possibly due to differences in the version of the PowerShell task?
* Remove dead YML file
* Rename usages of win7-{x64,x86} to win-{x64,x86}
* Update KoreBuild to 3.0.0-build-20190219.1
2019-02-20 09:53:53 -08:00
Chris Ross 4e44025a52
Replace IHostingEnvironment with IWebHostEnvironment (#7725) 2019-02-19 21:11:52 -08:00
Chris Ross 93a24b03bb
Disable AllowSynchronousIO by default in all servers #4774 (#5120)
* Disable AllowSynchronousIO by default in all servers
2019-02-15 16:05:49 -08:00
Pranav K 9053bc6e29 Re-enable skipped runtime compilation tests 2019-02-13 16:45:36 -08:00
Pranav K 173b2f91fb
Trim Async suffix on action names (#7420)
Fixes https://github.com/aspnet/AspNetCore/issues/4849
2019-02-12 13:30:38 -08:00
Ryan Nowak acd1cf3251
Update MVC/Routing Startup Experience (#7425)
* Relayer MvcEndpointDataSource

Separates the statefulness of the data source from the business logic of
how endpoints are created.

I'm separating these concerns because one of the next steps will split
the MvcEndpointDataSource into two data sources.

* Simplify MvcEndpointInfo

Removing things that are unused and leftovers from the 2.2 design of
this feature.

* Remove per-route conventions

Removes the ability to target endpoint conventions
per-conventional-route. This was a neat idea but we have no plans to
ship it for now.

Simplified MvcEndpointInfo and renamed it to reflect its new purpose.

* Remove filtering from MvcEndpointDataSource

This was neat-o but we're not going to ship it like this. We're going to
implement filtering in another place. Putting this in the data source is
pretty clumsy and doesn't work with features like application parts that
need to be baked in addservices

* Simplify ActionEndpointFactory

* Split up data sources

* Use UseRouting in functional tests

I've rejiggered our functional tests to de-emphasize UseMvc(...) and
only use it when we're specifically testing the old scenarios.
UseMvc(...) won't appear in templates in 3.0 so it's legacy.

* Update templates

* Add minor PR feedback

* one more
2019-02-11 19:18:05 -08:00
Pranav K 0f072a9565
Reintroduce a package for Razor runtime compilation (#6653)
* Reintroduce a package for Razor runtime compilation

Fixes https://github.com/aspnet/AspNetCore/issues/4947
2019-01-29 09:34:43 -08:00
Pavel Krymets f06e1822f5
Enable strict mode in roslyn compiler (#6950) 2019-01-28 15:56:27 -08:00
Pranav K f2ee3201ae No-op Authorization middleware for Razor Pages
Workaround for https://github.com/aspnet/AspNetCore/issues/7011
2019-01-25 15:38:23 -08:00
Javier Calvarro Nelson 15edd84d40 [MVC] Add MVC integration with Razor Components
* Adds RenderComponentAsync extension methods to IHtmlHelper that allow
  for prerrendering of Razor components within MVC views.
2019-01-17 11:25:03 -08:00
Justin Kotalik e6d547a923 Merge branch 'jkotalik/22temp' into jkotalik/masterMerge 2019-01-16 14:39:10 -08:00
James Newton-King df7bfe5243
Unit test route name with RouteUrl and ambient values (#6719) 2019-01-16 13:57:13 +13:00
James Newton-King 92680b355f
Change consumes behavior to ignore requests with no content type (#6645) 2019-01-16 11:55:54 +13:00
James Newton-King 180f735ac8
Fix non-parameter route constraints not called with endpoint routing for 2.2 (#6587) 2019-01-16 11:16:35 +13:00
Chris Ross 6a44aca6a2
React to WebHostBuilderFactory changes (#6460) 2019-01-15 08:09:27 -08:00
Ryan Nowak 14e606997f Fix #5116 Remove support for 2.0 precompilation
Obsoletes RazorViewAttribute and RazorPageAttribute and removes all of
our usage of them. I've already made the changes to have the SDK stop
generating these.
2019-01-10 15:38:10 -08:00
Nate McMaster 0f65d44482
Merge branch 'release/2.2' 2019-01-09 18:09:25 -08:00
Nate McMaster a3f9b74bb9
Merge branch 'release/2.1' into release/2.2 2019-01-09 14:52:53 -08:00
Pranav K cdc66c5f98 Move JSON.NET specific features to a separate assembly 2019-01-08 12:49:29 -08:00
Nate McMaster 5d16f97965
Remove netcoreapp2.0 test TFMs (#6461)
.NET Core 2.0 reached EOL last year. This removes multi-targeting our test projects and test assets to only use .NET Core 2.1 and .NET Framework 4.6.1.
2019-01-08 11:20:09 -08:00
Ajay Bhargav Baaskaran 50996e3da1
Add missed reference to Razor SDK in Mvc test website (#6367) 2019-01-04 11:22:25 -08:00
Ajay Bhargav Baaskaran 3787fbf3a3 Merge branch 'release/2.2' 2018-12-21 18:29:32 -08:00
Ajay Bhargav Baaskaran af2461d524 Merge branch 'release/2.1' into release/2.2 2018-12-21 11:38:25 -08:00
Ajay Bhargav Baaskaran 7f17d095d8
Convert Mvc to use Reference (#6047)
* Convert Mvc to use Reference

* Use ProjectReference for test assets
2018-12-20 16:27:32 -08:00
Doug Bunting f113a20dfd Remove remaining `CompatibilitySwitch<T>` properties
- #4866 3 of 3
- other than ignored parameters and properties, no vestige remains of alternate behaviours
- also remove `AllowAreas` use outside src/Mvc
- left the `IEnumerable<ICompatibilitySwitch>` implementations to avoid `breakingchanges.netcore.json` churn
  - made the implementations more consistent
- left one `ConfigureCompatibilityOptions<MvcOptions>` subclass: `MvcOptionsConfigureCompatibilityOptions`
- note `AllowShortCircuitingValidationWhenNoValidatorsArePresent` default now applies to `TryValidateModel(...)` etc.

nits:
- updated `CompatibilityVersion` doc comments
- "currently unused" -> "currently ignored" in doc comments from part 2
- took a few VS suggestions
- VS seems to have cleaned up some trailing whitespace in files I had opened but didn't manually change
2018-12-17 14:47:49 -08:00
Doug Bunting 708dc5cb5a
Remove many `CompatibilitySwitch<T>` properties (#4628)
- #7156 2 of 3
- will leave the `IEnumerable<ICompatibilitySwitch>` implementations to avoid `breakingchanges.netcore.json` churn
- will leave one `ConfigureCompatibilityOptions<MvcOptions>` subclass: `MvcOptionsConfigureCompatibilityOptions`
- a few options remain as regular properties:
  - `ApiBehaviorOptions.SuppressMapClientErrors` (default `false`)
  - `MvcOptions.EnableEndpointRouting` (default `true`)
  - `MvcOptions.MaxValidationDepth` (default `32`)
  - `MvcJsonOptions.AllowInputFormatterExceptionMessages` (default `true`)

nits:
- move `IsEffectivePolicy(...)` check earlier in `AuthorizeFilter`
- correct a typo or two
2018-12-16 19:33:27 -08:00
Ryan Nowak a7f6154520 Workaround #4804
This is a workaround for a workaround that currently have in d16p1.

The Razor SDK maps all netcoreapp3.0 projects to MVC-2.1 at design time,
however this only really works if you have the Razor.Design package.
Since we have internal builds available that support MVC-3.0 we can just
manually hardcode the correct targeting of the project.
2018-12-14 11:15:32 -08:00
James Newton-King c6fa808a91
Change consumes behavior to ignore requests with no content type (#4459) 2018-12-11 17:55:20 +13:00
Doug Bunting 929d7f3306 Obsolete old `CompatibilityVersion` values
- #7156 part 1 of ?
- add `CompatibilityVersion.Version_3_0` and make it the default
- remove tests of old versions
  - also remove `CompatibilityVersion.Version_2_x` uses outside src/Mvc
  - for functional tests of legacy routing, use `MvcOptions.EnableEndpointRouting` to control behaviour
  - rename `StartupWith2xCompat...` classes to `StartupWithoutEndpointRouting`
- clean up comments mentioning `[Obsolete]` `CompatibilityVersion` values
  - many of the affected options will be removed in subsequent PRs but this cleanup helps when searching entire repo
- correct `<value>` comments in `ApiBehaviorOptions`

nits:
- take VS suggestions in changed files
- remove src/SiteExtensions/global.json and let file in repo root "win"
- fix a few grammar errors VS or the spell checker noticed
- move `<value>` elements before `<remarks>` for consistency
  - was undoing unintentional changes and noticed the inconsistency in a couple of additional files
2018-12-05 16:46:46 -08:00
James Newton-King f157b78d93 MVC reaction to RoutePattern required values 2018-12-04 12:14:35 +13:00
Ryan Brandenburg a6b473dc2c Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in c9887e027a
2018-11-27 15:36:38 -08:00
Ryan Brandenburg b659c82df6 Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in a6199bbfba
2018-11-27 12:09:17 -08:00
Ryan Brandenburg f4578f127c Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in 5a4fd3e792
2018-11-27 10:43:55 -08:00