Commit Graph

2799 Commits

Author SHA1 Message Date
Javier Calvarro Nelson e781cd38cf [Fixes #7635] Provide a way to configure HTTP Client instances 2018-04-17 12:52:56 -07:00
Javier Calvarro Nelson e0b4c13895 [Fixes #7587] Default to Development environment in tests 2018-04-17 12:52:51 -07:00
Doug Bunting e0e96ce53b
Include parameter type's attributes in ModelMetadata
- #7595
- #7595 relates to #7350 but does not have the same root cause
  - did _not_ revert the src changes in #7350 fix (d995b0418a)
- make non-`[Obsolete]` `ModelAttributes` constructor overload `internal`
  - should generally use `static` methods and not any constructor
  - change some unit tests to use `[Obsolete]` constructor overloads (with suppressions)
- fix test `ParameterBinderExtensions` to use current `ParameterBinder.BindModelAsync(...)` overload
  - found some tests updated `IModelMetadataProvider`, `MvcOptions`, etc. instances but didn't register them in DI
- extend `ModelBindingTestHelper` and `ModelBindingTestContext`
  - reorder some tests to use correct `MvcOptions` and `IModelMetadataProvider` everywhere
  - fixes above issues

nits:
- take a few VS suggestions
- remove an old comment indended only for PR "Reviewers:"
2018-04-17 12:40:38 -07:00
Pranav K d8fc2d4009 Fix test failures
* Disable deps file generation in class library project. This workarounds known issue - https://github.com/dotnet/core-setup/issues/3726
* Update RazorProjectRouteModelProvider to not specify a trailing slash. This produces paths with a single slash as opposed to two slashes messing with route creation.
* React to Microsoft.AspNetCore.Mvc.Razor.Extensions.Reference that shows up in the deps file.
2018-04-15 16:31:41 -07:00
Doug Bunting cc5ae02b7d
Fix binding & validating dictionaries of non-simple types in jQuery requests
- #7423
- retry failed inner bindings with alternate syntax in `ModelStateDictionary`
  - use property syntax if first attempt tried index syntax and visa versa
- instantiate `ShortFormDictionaryValidationStrategy` with full `ModelState` keys
  - can now provide exact `ModelState` keys that `ModelStateDictionary` used in inner bindings
- normalize model names without a leading period in `JQueryKeyValuePairNormalizer`

nits:
- take a few VS suggestions
2018-04-14 10:41:00 -07:00
Kiran Challa e52933e4e3 Removed UrlTestEncoder references in tests
This is because with the following commit, Routing no longer depends on DI to get a UrlEncoder and always uses UrlEncoder.Default.
4184b2406d
2018-04-14 06:08:20 -07:00
Kiran Challa d5e044f693 [Fixes #7373] Assigning to the context's Result property, when implementing IPageFilter, causes an exception 2018-04-13 15:11:44 -07:00
Ajay Bhargav Baaskaran bfbd286ab6 Remove usages of obsolete APIs 2018-04-13 14:54:35 -07:00
Pranav K d995b0418a Allow BindPropertyAttribute to be specified on controller classes
Fixes #7350
2018-04-13 13:58:44 -07:00
John Luo c35030267c Update usage of TestSink 2018-04-13 10:21:41 -07:00
Pranav K e34b4e8335
Use DependencyContext.CompileLibraries to determine dependency graph (#7626)
* Use DependencyContext.CompileLibraries to determine dependency graph

Fixes https://github.com/aspnet/Mvc/issues/7617
2018-04-11 15:57:11 -07:00
Pranav K 9cea47fa7d Remove root directory customization options for Razor Pages areas
Fixes #7608
2018-04-11 15:25:31 -07:00
Kiran Challa 62272ad56a Round off file result's LastModifiedDate to whole seconds for correct comparison with http header dates
[Fixes #7572] PhysicalFileResult does not respond 304 Not Modified
2018-04-11 06:43:50 -07:00
Pranav K 3db924003e Use VirtualRazorProjectSystem for Razor tests 2018-04-09 15:27:03 -07:00
Pranav K ec31ff0c28
Throw if multiple Body bound parameters are discovered
Fixes #6963
2018-04-09 11:20:34 -07:00
Pranav K 5e019bd707
Add Microsoft.AspNetCore.All
Fixes https://github.com/aspnet/Mvc/issues/7605
2018-04-06 10:57:59 -07:00
Pranav K 07a1907918
Introduce ViewDataAttribute
Allow properties on controllers, Razor Page and Razor Page models annotatted with [ViewDataAttribute]
to populate ViewDataDictionary

Fixes https://github.com/aspnet/Mvc/issues/6525
2018-04-02 10:31:16 -07:00
Pranav K c515cece8e Use ModelMetadataProvider to infer BindingSource on application model 2018-04-02 09:48:49 -07:00
Kristian Hellang a16504b941 Added failing test for #7546 2018-04-02 09:48:49 -07:00
Ryan Nowak f20bf9ea02 Fix #7503 change to model name for IValidableObject
This change undoes a breaking change introduced by the 2.1 model
validation changes. Now an implementation of IValidableObject on a
top-level model will be called correctly with the 'empty' prefix instead
of the parameter name.

When fixing this we undid a workaround for another issue.

When validating a parameter that didn't bind we didn't correctly compute
the model name for 'fallback to empty prefix' cases.

(cherry picked from commit 7a1096a72b)
2018-03-29 21:35:59 -07:00
Pranav K 264f9c871e Add an analyzer to warn against the use of IHtmlHelper.Partial and IHtmlHelper.RenderPartial
Fixes https://github.com/aspnet/Mvc/issues/7417
2018-03-29 21:25:54 -07:00
Ryan Nowak d360886b78 Fix #7558 infer [FromRoute] with parameter in ANY route
This changes the logic for when we infer [FromRoute] on an action
parameter from *ALL* to *ANY*.

This means that if a parameter occurs in any route on an ApiController,
we will treat it as [FromRoute]. We think this is the best decision
because it's less ambiguous. If a parameter appears in a route, it won't
be eligible to be bound from query. I think that's good.

If for some reason you want this kind of behavior (route or query) then
we suggest breaking up the actions. This isn't very documentation
friendly (swagger) so we don't suggest it.
2018-03-29 07:54:39 -07:00
Doug Bunting fc3a815e57
Restore `ModelMetadata.PropertyName != null` behaviour
- #7413 part 2 of 2
- add `ModelMetadata.Name` and `ParameterName`
  - use `Name` instead of `PropertyName` in most cases
- update `ModelMetadata.ContainerType` and other property use
  - choose using `MetadataKind` almost everywhere; support all possibilties
    - usually parameter metadata was possible but not handled
    - worst case was one or two potential NREs, especially `ContainerType.*` dereferences
  - improve `MvcCoreLoggerExtensions` metadata handling
    - add three new debug messages, one for type metadata and two for parameter metadata
- update `ModelMetadata.ContainerMetadata`, `ContainerType` and `PropertyName` doc comments
- no changes needed in Microsoft.AspNetCore.Mvc.ViewFeatures because parameters aren't viewed

nits:
- add missing `TestModelMetadataProvider.ForParameter(...)` method
- remove unused `EmptyModelMetadataProvider` instances in `ModelMetadataTest`
- refactor `ModelValidationResultComparer` out of DataAnnotationsModelValidatorTest`
- take VS suggestions, mostly related to variable inlining and object initializers
2018-03-29 07:22:00 -07:00
Pranav K f8e315d03d
CompiledPageRouteModelProvider should de-dup descriptors
Fixes #7543
2018-03-28 11:24:49 -07:00
Ryan Nowak c93c168df3 Add mapping service for action results
This allows the use of custom 'envelope' types like ActionResult<> with
a corresponding API Explorer implementation.

Basically this PR services to decouple a bunch of infrastructure from
ActionResult<>.
2018-03-27 17:13:41 -07:00
Pranav K 927af3125e
Use RazorCompiledItemMetadataAttribute to calculate route 2018-03-27 12:24:37 -07:00
Kiran Challa 0c084fa28a [Fixes #7518] NullReferenceException thrown when Controller method uses Guid parameter default value 2018-03-27 05:22:20 -07:00
Doug Bunting 5e245da326
Add compatibility switch controlling parameter metadata and top-level validation
- #7413 part 1 of 2
- made all `ModelMetadataProvider` and `ObjectModelValidator`-specific code conditional
  - fortunately, `MvcOptions` easy to get; affected code is primarily `internal` or pub-`Internal`
  - remove unnecessary `ModelMetadataProvider` use in `ApiBehaviorApplicationModelProvider`
- run integration and functional tests with `CompatibilityVersion.Version_2_1`
  - functional test change depends on @javiercn's recent #7541 fix
  - remove test code now redundantly turning compatibility switches on

nits:
- correct spelling errors in `CompatibilitySwitch`
- take VS suggestions, mostly in test code
- rename methods in `ControllerBinderDelegateProviderTest` to match current API
- slightly refactor in `ApiBehaviorApplicationModelProvider`
2018-03-26 12:29:04 -07:00
Javier Calvarro Nelson 51784bb2d6
[Fixes #7541] Per-test class customization should not remove global (per-fixture) customization 2018-03-24 18:33:48 -07:00
N. Taylor Mullen e94d77c47f Add model attribute for PartialTagHelper.
- The model attribute is used to define any object based model to be passed to a `TagHelper`. It enables scenarios when users want to pass in `new` poco types.
- Added unit tests for the new `ResolveModel` method in `PartialTagHelper`.
- Added a single functional test to verify the end-to-end.

#7374
2018-03-23 16:13:55 -07:00
Ryan Nowak 1ff5bdca79 Set model prefix for [ApiController]
Infers the 'empty' model prefix for complex types that are read from the value
providers. This gives us better defaults when using the parameter object
pattern with respect to swagger/API explorer.
2018-03-23 14:49:54 -07:00
Ryan Nowak 14429721d9 Make handler selector more flexible
Some details of this pending discussion, but this is a new 2.1 change
and compatibility switch in the spirit of making pages handler selection
less error-prone.

In particular we don't want anyone to have to define HEAD to do the
trivial thing. This currently routes all 'safe' HTTP methods to the GET
handler and all other HTTP methods to the POST handler.

This is technically not the correct thing to do for OPTIONS and TRACE,
so we might still do something different.

The tests will change a little depending on exactly what we decide to
do, but this is the main idea of the change.
2018-03-23 14:22:48 -07:00
Pranav K 1d6c09ab31 Make the use of Assembly.CodeBase more robust 2018-03-23 09:35:55 -07:00
Pranav K ccb6793126
Introduce LifecycleProperty
Update TempDataAttribute infrastructure to use LifecycleProperty
2018-03-22 10:18:36 -07:00
Pranav K d6176ac7de ApplicationPartFactory: The works 2018-03-21 15:40:15 -07:00
Doug Bunting 390ebbb258
Do not bind `"[index]"` in `CollectionModelBinder` subsetting feature
- #7091
- add `IKeyRewriterValueProvider` to remove rewritten keys or value providers containing such keys
  - similar to `IBindingSourceValueProvider` except `CompositeValueProvider` keeps non-implementers around
- remove `after.Order == before.Order` special cases
  - a premature optimization that could lead to lost inner provider replacements
  - rework `EnumerableValueProviderTest` to ease test override in `CompositeValueProviderTest`
- add `EmptyValueProvider` fields to reduce `CompositeValueProvider` allocations

nits:
- remove Linq use in `CompositeValueProvider`
- do not create an unnecessary dictionary in `CompositeValueProvider.Filter(...)` methods
- accept VS suggestions, mostly pattern matching
2018-03-19 12:53:05 -07:00
Javier Calvarro Nelson 908e7a863b Improvements to the MVC testing package
* Clean up unnecessary workarounds on the build project.
* Remove the need to specify the content root relative to the solution
  and use a solution based on an assembly level attribute on the test
  assembly created at build time.
* Remove non parameterless constructors.
* Add support for creating specialized factories from the base factory
  and keep track of "child" factories for disposal.
* Add support for creating clients that handle cookies and redirects
  automatically.
2018-03-19 12:19:45 -07:00
Doug Bunting 869825b16c
Quick fix: Add test of #2890
- tests added (ages ago) in aspnet/Mvc@a045324 no longer fail when `__` handling removed
2018-03-19 11:59:52 -07:00
Kiran Challa e2b6975bff Marked PageArgumentBinder type as Obsolete 2018-03-19 11:50:20 -07:00
Kiran Challa 09b5ff7b72 Use ParameterInfo for getting metadata of a parameter to show the correct information in ApiExplorer
[Fixes #7435] 2.1-Preview 1: IsBindingRequired and IsRequired still false with RequiredAttribute on controller parameter.
2018-03-19 11:50:19 -07:00
Pranav K e7b2e3fe2d Stop building\testing on netcoreapp2.0 2018-03-19 10:09:51 -07:00
Pranav K ae2d82c748 Remove FiltersWebSite 2018-03-16 16:54:10 -07:00
N. Taylor Mullen 4e7d1a5a32 Rename PartialTagHelper `asp-for` to `for`.
#7379
2018-03-15 16:07:13 -07:00
Ajay Bhargav Baaskaran 90b07a9e9a Enable RazorCompileOnBuild of test website 2018-03-14 15:37:49 -07:00
Kiran Challa a0b1b15101 [Fixes #7412] AspNetCore 2.1 breaks integration with 3rd party validation libraries 2018-03-13 02:07:56 -07:00
Kiran Challa a952313f1c Added JQueryQueryStringValueProviderFactory and JQueryQueryStringValueProvider
[Fixes #6372] jQuery ajax request with complex data does not work with .net core 1.1 model bindings
2018-03-12 16:40:04 -07:00
Pranav K 62fdf3a472 Fix issues with RazorCompileOnBuild=true being default 2018-03-09 14:39:18 -08:00
Ryan Brandenburg 9b4b373014 Remove IErrorDescriptionFactory 2018-03-07 13:09:13 -08:00
Pranav K 5af246b554 Ignore constructors when discovering actions 2018-03-06 17:42:53 -08:00
Jass Bagga f3ffdada95
Remove problem+json Content-Type (#7440)
Addresses #7344
2018-03-06 13:46:40 -08:00
Pranav K 3517ecda2f Ensure DebugType = embedded and DebugType = none work
Fixes #7406
2018-03-05 09:21:13 -08:00
Doug Bunting f061d328d9
Do not use `FormattedModelValue` in password editor template
- #7418
- add quirk switch to reverse this if necessary
2018-03-05 08:33:16 -08:00
Jass Bagga 8d1c85ab74
Add overload for AddModelError without ModelMetadata (#7407)
Addresses #6102
2018-03-02 11:03:46 -08:00
Doug Bunting daf341df35 Add more tests of #7033 scenarios 2018-02-21 15:11:52 -08:00
Charlie Daly 4f3e044928 HtmlHelper.DisplayTextFor should use DisplayAttribute of enums
- #7033
2018-02-21 15:11:51 -08:00
N. Taylor Mullen 43106f688a Re-enable "Move to RazorProjectEngine."
- This was initially reverted due to insufficient packages for local builds.

This reverts commit 5ac6fa77f8.
2018-02-16 16:13:54 -08:00
Ryan Nowak 9df6ba8c4f Add MVC Razor msbuild files 2018-02-16 07:54:37 -08:00
N. Taylor Mullen 5ac6fa77f8 Revert "Move to RazorProjectEngine."
- Waiting for packages to be available from Razor.

This reverts commit 608330dc86.
2018-02-15 17:01:07 -08:00
N. Taylor Mullen 608330dc86 Move to RazorProjectEngine.
- Updated our consumption of `RazorEngine` and `RazorTemplateEngine` to use `RazorProjectEngine` and its features.
- Updated service registrations to maintain existing services but to also register new ones.
- When moving `RazorViewEngine` to use `RazorProjectFileSystem` I had to add an unused constructor item in order to disambiguate the constructors.
- Updated tests to use `RazorProjectEngine` and `RazorProjectFileSystem`.

#7377
2018-02-15 16:34:26 -08:00
Pranav K 06e40252a0 Add support for top level validation to Razor Pages 2018-02-14 14:39:25 -08:00
Artak Mkrtchyan e308c0fe5f
Merge pull request #7290 from FabienLavocat/dev
Add constructor for the SelectListItem class
2018-02-06 16:29:57 -08:00
Jass Bagga d27e66a8fc
Initialize ViewContext for TagHelperComponentTagHelper (#7326)
Addresses #7017
2018-02-06 16:07:38 -08:00
Fabien Lavocat c062d637fe Add new contructor in SelectListItem.cs 2018-02-06 11:01:24 -08:00
Artak Mkrtchyan 7a13eb8b21 Addressed review feedback 2018-02-01 14:44:06 -08:00
Artak Mkrtchyan dea3eb7856 Not instantiating the RequestHeaders and not relying on TypedHeaders to parse AcceptCharset 2018-01-31 17:20:29 -08:00
Kiran Challa 0215740183 [Fixes #5859] Consider allowing binding header values to types other than string and string collections 2018-01-30 11:47:16 -08:00
Pranav K dbff416be6 Add support for running conventions on controller properties, Razor Page parameter and properties
Fixes #6935
2018-01-29 11:43:25 -08:00
Javier Calvarro Nelson 7127bb5dbb Add DeclaredModelType to Razor pages
* This allows razor pages to override their model type with a model that
  extends the declared model type through the page application model.
2018-01-25 16:00:54 -08:00
Pranav K b30020a655 PartialTagHelper should not fallback to the current page's model if asp-for expression exists
Fixes #7295
2018-01-25 11:06:40 -08:00
Pranav K a74ef9dfd9 Error message for [ApiController] without attribute route needs to be better
Fixes #7277
2018-01-25 10:25:52 -08:00
Artak Mkrtchyan 4f3e0966d9 Enabling antiforgery tests, which were disabled because of the #7040 issue 2018-01-23 19:16:24 -08:00
Javier Calvarro Nelson 17a407bba2 [Fixes #7271] Support covariant casting of ViewDataDictionary<T>
On HtmlHelper<T> we now support contextualizing an instance of
HtmlHelper<TBase> with a ViewDataDictionary<TDerived> in
ViewContext.ViewData.

This can happen in some situations when the model for a RazorPage has
been changed using a page application model convention.

In these cases we just build a new ViewDataDictionary<TBase> and pass in
the TDerived model as an instance.
2018-01-23 17:31:03 -08:00
Ryan Brandenburg ea14942525 React to Options change 2018-01-23 08:07:45 -08:00
Pranav K ebdb3c650a Smooth rough ApiBehavior edges
Fixes #7262
2018-01-22 09:53:21 -08:00
Ajay Bhargav Baaskaran 2c6ba372c1 Some cleanup around FileProviderRazorProject with tests 2018-01-21 21:38:25 -08:00
Javier Calvarro Nelson 1d6b02c1f5 [Fixes #7239] Add support for loading additional parts.
* Support loading parts through an assembly metadata attribute with a
  key of Microsoft.AspNetCore.Mvc.AdditionalReference and a value that
  describes the additional assembly to add to the list of parts and
  whether or not it should be added by default. The additional reference
  can only contain the file name of the assembly and it must be located
  side by side with the assembly where the additional reference is
  defined.
* Add an AdditionalAssemblyPart application parts to represent parts
  that are not part of the original application per se, like precompiled
  views.
* Update the ViewsFeatureProvider to search for razor views in the
  application part directly instead of trying to load the precompiled
  views assembly part.
2018-01-21 08:02:20 -08:00
Pranav K c6c77dd4d3 Introduce Mvc analyzers 2018-01-19 16:02:50 -08:00
Ryan Nowak f2d6cfa821 Update checksums
These are generated based on an incorrect version of the file. This code
is now testing the right thing.
2018-01-18 10:54:15 -08:00
Pranav K f0ae0ce528 Add PageConvention overloads for areas
Fixes #7246
2018-01-18 08:21:21 -08:00
John Luo 6751e3b7ca Discover assembly parts for Microsoft.AspnetCore.All 2018-01-17 13:20:09 -08:00
Pranav K ab3134e373 Support conflict resolution when multiple precompiled views have the same path
Fixes #7223
2018-01-16 08:04:39 -08:00
Pranav K 946b64143e Allow override routes on Pages
Fixes #6605
2018-01-12 15:57:13 -08:00
Pranav K 094b61dfc6 Refactor PageRouteModel generation 2018-01-12 15:44:23 -08:00
Jass Bagga 66c13ae5e5
Use weak comparison for If-None-Match header (#7237) 2018-01-12 12:40:51 -08:00
Ryan Nowak d342ebf8c8 Use compatibility switch for auth filters 2018-01-11 17:42:32 -08:00
Kiran Challa c922b0b90d Improving logging - model binding
Related to issue #6498: When enabling "Trace" logging for MVC loggers, I should be buried in log messages
2018-01-11 14:51:53 -08:00
Ajay Bhargav Baaskaran b20e35e76a Set RelativePhysicalPath in FileProviderRazorProjectItem 2018-01-11 13:20:17 -08:00
Jass Bagga 9438a453b0
Do not serve response body for HEAD requests (#7230)
Addresses #7208
2018-01-11 12:19:43 -08:00
Kiran Challa 2aae8774f6 [Fixes 7139] Add format filter mapping for xml formatters 2018-01-10 15:18:37 -08:00
Kiran Challa 00c6b53b06 [Fixes #7115] Update property type check in SaveTempDataPropertyFilterBase to match TempDataSerializer requirements 2018-01-10 15:08:01 -08:00
Pranav K b196708a3e Merge tag '2.0.2' into dev 2018-01-10 10:02:54 -08:00
Ryan Nowak 95d743e2c6 Renable compatibility switch functional tests 2018-01-09 22:24:19 -08:00
Doug Bunting 58026eacbd Correct a few model binding typos
- worst cases were incorrect references in doc comments
- also a few doc comments ended with `..` or `/`
- otherwise, address nits and take VS suggestions
2018-01-09 12:49:40 -08:00
Ryan Nowak 913cefdea2 Fix a bug blocking recompilation 2018-01-09 12:25:11 -08:00
Nick Mayne 6bd421d197 Fixing BackSlashExpander class name 2018-01-09 11:30:27 -08:00
Doug Bunting afc75a8296 Move `IHttpRequestStreamReaderFactory` from `.Internal` to `.Infrastructure`
- #7044
- move `IHttpResponseStreamWriterFactory` too
- add breaking change records e.g. for changes to `BodyModelBinder[Provider]` constructors
  - these changes relate to previously-"internal" constructors and one property

nits: take VS suggestions for changed files
2018-01-09 10:51:09 -08:00
Doug Bunting c9ac2e6c29 Add `DisplayMetadata.NullDisplayTextProvider` and similar properties
- #6730
- `DisplayFormatStringProvider`, `EditFormatStringProvider`

nits:
- use `<see langword="null"/>` more
- accept VS suggestions in changed files
2018-01-09 09:01:57 -08:00
Doug Bunting ecedbd5372 Allow `null` or empty `fullName` in one special case
- #6662
- users can now provide a `name` or `data-valmsg-for` attribute to avoid `ArgumentException`s
  - affects `<input>`, `<select>`, `<textarea>` elements and validation message `<div>`s
- remove `fullName` check in `DefaultHtmlGenerator.GetCurrentValues(...)` entirely

The new workaround is _not_ identical to changing `ViewData.TemplateInfo.HtmlFieldPrefix`
- does not change where expression values are found in `ModelState` or `ViewData`
- likely needs to be combined with additional workarounds i.e. for advanced use only

nits:
- clean up some excessive argument naming; add a few missing argument names
- take VS suggestions in changed classes e.g. inline a few variable declarations
- clean up some test data
2018-01-09 08:53:37 -08:00
Ryan Nowak 75e3ed952b Update functional tests 2018-01-08 19:55:01 -08:00
Ryan Nowak d58d0f917f Add support for recompilation 2018-01-08 15:26:20 -08:00
Hao Kung 73bd09dc1c Add CombineAuthorizeFilters option 2018-01-08 11:59:30 -08:00
Ajay Bhargav Baaskaran acd6f7b064 Generate full pdb when running in net461 2018-01-08 11:26:12 -08:00
ASP.NET CI 2e73bab2a4 Move option for JSON errors to MvcJsonOptions
This was in the wrong place - JSON formatters have their own options
type already.

Moved the option to MvcJsonOptions and updated the naming + defaults to
reflect our plan.

Also did a bunch of general cleanup on these tests, which were a bit
sloppy.
2018-01-07 21:48:58 -08:00
Doug Bunting bab520f4dd Use latest `Microsoft.AspNet.WebApi.Client` package
- #5822
- update `Microsoft.AspNet.WebApi.Client` package version
- remove remaining few `$(PackageTargetFallback)` settings
- remove .NET Standard-specific files
  - they duplicate what Microsoft.AspNet.WebApi.Client now provides
  - necessary only if cross-compiling a PCL version of the WebApiCompatShim
  - add type forwarding for the removed `public` types
- reenable .NET Framework WebApiCompatShim tests
- add breaking change record for `MediaTypeFormatterMatchRanking` value change
  - version of this type in the shim lacked the `MatchOnRequestWithMediaTypeMapping` value
2018-01-05 16:42:28 -08:00
Kiran Challa 9fd60ff864 Marked CookieTempDataProvider's cookie as non-essential
[Fixes #7160] Determine if the temp data cookie is considered essential
2018-01-05 15:41:01 -08:00
Doug Bunting 1fa1d7df3e Add missing `RenderPartial(...)` overload
- #7127
- also remove some redundant `null` checks
2018-01-05 11:27:54 -08:00
Kiran Challa 40d027fca3 File results - logging 2018-01-04 23:49:13 -08:00
Pranav K 0e21bab125 React to naming change in Razor 2018-01-03 12:38:16 -08:00
Ryan Nowak bf61ce2b8f Document compatiblity switch for input formatter exceptions 2018-01-03 11:23:05 -08:00
Pranav K 7d64990a69 Ensure RazorPages in an area are not route-able through root based paths when root directory and area root directory overlap
Fixes #7147
2018-01-03 09:37:30 -08:00
Ryan Nowak 64259fe51c Add skips for dotnet/standard#567
This issue causes problems with ValueTuple when used across assembly
boundaries between netstandard and net4X when net471 is installed. These
tests fail consistently in appveyor and will fail on any machine with
net471 installed.
2018-01-02 20:58:39 -08:00
Doug Bunting 5778f44bf7 Use `ExceptionDispatchInfo` in `MiddlewareFilterBuilder` if available
- #6596
- better-align this code with `ResourceInvoker.Rethrow()`

nits:
- take VS suggestions in `MiddlewareFilterBuilderTest`
- clean up names like `httpCtxt`
- remove unused `Pipeline2` class
2018-01-02 14:56:41 -08:00
Pranav K 51820e3e25 Use DebugType specified in DependencyContext to determine pdb type
Fixes #7006
2018-01-02 13:41:31 -08:00
Ryan Nowak 49bdcfb150 Updated Razor Pages areas for compatibility switches 2018-01-02 09:48:23 -08:00
Ryan Nowak 82e32240a4 Update the Enum Invalid Value setting for compat
Updated the naming to follow guidelines, and set the default for 2.0
apps to false. Note that I inverted the naming, which means that I had
to invert the logic in a few places.
2017-12-29 12:09:29 -08:00
Ryan Nowak 747420e5aa
Compatibility switches (#7142)
* [Design] Compatibility switches

This introduces a pattern for versioning breaking behaviour changes in
minor releases of MVC.

The general plan is that application developers choose a release version
(2.0, 2.1, Latest) as their baseline which determines the effective
'defaults' for some options. Anything the developer sets explicitly is
an override and always wins.

Then we add a version setting to the template to point to the current
release.

This allows us to be progressive with fixing issues and improving areas
that don't work well, but offers the developer some choice about when to
adopt new behaviours. In effect, we separate new behaviours from the
libraries that develiver them. Apps can update the version, and then opt
in to new behaviours as a separate change.

* Be more american

* improve docs, add example

* Fix visibility

* Fix broken test

* Add test

* Docs!

* The rest of the tests

* fix example

* Adding docs

* PR feedback
2017-12-28 09:43:24 -08:00
Pranav K 350c4ec4f6
Introduce IAlwaysRunResultFilter \ IAsyncAlwaysRunResultFilter (#7120)
* Introduce IAlwaysRunResultFilter \ IAsyncAlwaysRunResultFilter

Fixes #7105
2017-12-22 10:52:52 -08:00
Pranav K dfa085afaf Add support for areas to Razor Pages
Fixes #6926
2017-12-19 15:03:05 -08:00
Kiran Challa c8cabde1f1 Improve logging - individual filters 2017-12-18 13:16:06 -08:00
Kiran Challa 4c4a7b3c6c Improve logging - filter pipeline execution
Related to issue #6498: When enabling "Trace" logging for MVC loggers, I should be buried in log messages
2017-12-14 11:22:13 -08:00
Kiran Challa 7e26af908e [Fixes #6514] Add default ctor overload to AuthorizeFilter 2017-12-12 14:07:02 -08:00
Kiran Challa 821daa5ad0 [Fixes #7085] ApplicationModelConventionExtensions should make a copy of collections when iterating them 2017-12-12 14:03:35 -08:00
Nate McMaster 67f48064ce Skip additional flaky tests. See aspnet/Mvc#7122 2017-12-11 15:38:30 -08:00
Nate McMaster 2789507808 Disable flaky test ProcessAsync_WorksForNestedCacheTagHelpers 2017-12-11 11:49:13 -08:00
N. Taylor Mullen 7cea779b7a Update JsonHelper to escape HTML.
- This functionality can be disabled by setting the `Switch.Microsoft.AspNetCore.Mvc.AllowJsonHtml` switch in an app.config.
- Updated tests to react to this new behavior.
- Exposed a new `PublicSerializerSettings` property on `JsonOutputFormatter` so we can accurately copy settings from the used output formatter in `JsonHelper`.
2017-12-07 16:12:43 -08:00
Kiran Challa d5bb73a98c [Fixes #6197] AddXmlSerializerFormatters with no namespace 2017-12-07 04:39:34 -08:00
Kiran Challa 05d02e7cab [Fixes #6533] Log when XML formatters fail to create a serializer 2017-12-06 11:52:05 -08:00
Kiran Challa db38da7edb Fix Xml formatters to taking in MvcOptions to take affect of options mutation
Related to issue [Fixes #6858] Changes to MvcOption's settings (SuppressInputFormatterBuffering & AllowBindingUndefinedValueToEnumType) are not taking affect
2017-12-06 11:44:35 -08:00
Kiran Challa e09ea40551 [Fixes #6591] TempData should support nullable types 2017-12-04 15:33:22 -08:00
Kiran Challa 629f87181a [Fixes #6858] Changes to MvcOption's settings (SuppressInputFormatterBuffering & AllowBindingUndefinedValueToEnumType) are not taking affect 2017-12-04 14:25:41 -08:00
Jass Bagga 0bb3f18049
Add support for BadRequest in RazorPages (#7097)
Addresses #7095
2017-12-01 12:03:24 -08:00
Doug Bunting 6b2a702ff4 Handle line ending differences in a few tests
- #6205
- combine `TagHelpers_SupportsPathNavigation()` and `TagHelpers_SupportsRelativeNavigation()` into one

nit: remove a few unnecessary `.Trim()` calls
2017-11-30 21:18:42 -08:00
Pranav K e6c716444d Add a <partial /> tag helper
Fixes #5916
2017-11-30 17:08:47 -08:00
Jeremy Skinner 711a618310 Adds test for proposal in #7014 2017-11-22 07:50:37 -08:00
avertes ee5535203e Fixed rfc3339 formats to work with all localizations (#7066)
* Amend rfc3339 formats to work with all localizations
Changed time separator ":" to "\:" to prevent it from being substituted with a localized separtor. For example in it-IT locale, datetime-local was formatted as 2017-11-19T22.52.29.223 instead of correct format 2017-11-19T22:52:29.223
2017-11-21 15:10:18 -08:00
Pranav K 9dc9381ae4 Re-order execution in CacheTagHelper to avoid setting the result too early
Re-enable skipped tests
Fixes #7042
2017-11-20 10:03:47 -08:00
Jass Bagga 5fffd464cd
Support input type "week" (#7045) 2017-11-16 16:00:15 -08:00
Pranav K b6144142fe Update samples and tests to target netcoreapp2.1 2017-11-13 14:58:40 -08:00
Pranav K a01e23250f Preparing to update to 2.2 SDK 2017-11-09 16:25:51 -08:00
Jass Bagga bb07119b4a
Handle "month" input type (#7022)
Addresses #6615
2017-11-09 10:25:36 -08:00
Chris Ross (ASP.NET) bcaee8df4e Disable broken Anti-forgery tests 2017-11-09 09:46:59 -08:00
Chris Ross (ASP.NET) a7c9e8ab25 Test: Do not set response headers after the response has started 2017-11-09 08:57:20 -08:00
Steve Sanderson d9825d1547 Better JSON deserialization errors. Implements #4607, #4862 2017-11-06 23:02:13 +00:00
Pranav K ab4c519dd5 Infer multipart/form-data for FromFile parameters 2017-11-02 09:36:31 -07:00
Nate McMaster 2e4bc548f5
Pin tool and package versions to make builds more repeatable (#7013) 2017-10-31 19:18:14 -07:00
Ryan Nowak 861d78fb78
Refactor content negotiation code into a service (#6998)
* Refactor content negotiation code into a service

This is a refactor in anticipation of using this logic in some other
places
2017-10-31 16:32:37 -07:00
Pranav K 41efa409a4 Remove TestOptionsManager 2017-10-30 17:49:15 -07:00
Pranav K de2aef61ba Make controllers with ApiControllerAttribute visible in ApiExplorer 2017-10-27 12:04:12 -07:00
Javier Calvarro Nelson 0989e60f73 [Fixes #6943] Unit Testing Page Model Throws Null Ref On ModelState check 2017-10-26 14:37:42 -07:00
Justin Kotalik ce66e95304 React to JsonPatch exception message changes. (#6976) 2017-10-20 09:56:27 -07:00
Pranav K 8946a68923 Infer binding sources for ApiController parameters
Fixes #6847
2017-10-16 15:20:43 -07:00
Jass Bagga b992ef0ced Add tests to ApplicationModelTest (#6932)
Addresses #756
2017-10-10 11:24:03 -07:00
Ryan Nowak 7ba167fcd8 Add 'default response' to API Response Type
Also some cleanup and unit tests.
2017-10-09 19:48:52 -07:00
Nate McMaster 3bfb023679 Update how PackageReference versions are set
Changes:
 - Remove floating versions
 - Disable myget feeds during a Universe build
 - Use package-specific MSBuild variables. Pattern = `packageId.Pascalize() + "PackageVersion"`, with a few exceptions.
2017-10-09 11:11:24 -07:00
Nate McMaster 3f02482617 Minor test code changes to resolve xUnit2013 build error 2017-10-05 16:04:20 -07:00
Sébastien Ros c4400d22d4 Port fix for URL helper redirect (#6916)
Fixes #6910
2017-10-05 11:24:36 -07:00
Sébastien Ros d0a8b5f78f Port fix for URL helper redirect (#6917)
Fixes #6910
2017-10-05 11:24:18 -07:00
Mike Harder 9fbb2f1141 Simplify collection initialization (#6897)
- Addresses VS message "IDE0028 Collection initialization can be simplified"
2017-10-04 14:12:43 -07:00
Pranav K 950db6587c Require attribute routing with [ApiController]
Fixes #6870
2017-10-04 13:13:20 -07:00
Kristian Hellang bfbc04f758 Use AddHttpContextAccessor method added in aspnet/HttpAbstractions#947 2017-10-03 08:52:59 -07:00
Ryan Nowak e3ce1f52d4 Added Conflict result helper to ControllerBase
- Added ConflictObjectResult and ConflictResult types.
- Conflict(), Conflict(object error), Conflict(ModelState modelState)
added to ControllerBase.cs.

Fixes #6172
2017-10-02 15:05:57 -07:00
Steve Sanderson afdda7cbee Update fsproj for FSharpWebSite. Fixes #6554 2017-10-02 14:35:28 +01:00
Jass Bagga 2fcfc6be7c Add EnableRangeProcessing (#6895)
Addresses #6780
2017-09-29 18:39:45 -07:00
Nate McMaster fb142f0b24 Import dependencies.props last to ensure TargetFramework is set first 2017-09-29 17:02:30 -07:00
Jass Bagga bd8b4d86df Port fix for #6875: Only set Content-Length when serving body (#6888)
Addresses #6887
2017-09-25 16:01:15 -07:00
Jass Bagga eeac99985a Only set Content-Length when serving body (#6886)
Addresses #6875
2017-09-25 15:07:12 -07:00
Kiran Challa 83c3ac62fb Updated formatters to wrap exceptions in InputFormatException for invalid input 2017-09-22 14:33:17 -07:00
Ryan Nowak 38712609bb Design extensibility for executors
We have all of these executors but they aren't really
documented/supported for extensibility today. This change introduces a
pattern for action result executors so we can make them extensible.
2017-09-22 10:32:55 -07:00
Pranav K 5d1603c37f Replace ProblemDetailsAttribute with ApiControllerAttribute 2017-09-22 10:26:13 -07:00
Kristian Hellang 97fab8711a Add UnprocessableEntityResult, UnprocessableEntityObjectResult and ControllerBase.UnprocessableEntity methods (#6851)
* Added UnprocessableEntityResult

* Added UnprocessableEntityObjectResult

* Added UnprocessableEntity overloads to ControllerBase

Fixes https://github.com/aspnet/Mvc/issues/6795
2017-09-22 09:27:29 -07:00
Pranav K 197ef139d6 Provide a way within the Page/PageModel to run code before any handler runs
Fixes #6606
2017-09-22 09:25:22 -07:00
Steve Sanderson 236ef5d1d1 Support validation and BindBehavior on top-level action parameters and bound properties. Fixes #6790 2017-09-22 10:13:48 +01:00
Kiran Challa a96fb68690 Fixed FileExtensionsAttributeAdapter to trim(whitespaces, dot character) and lowercase the extensions 2017-09-21 14:52:24 -07:00
Pranav K 7f214492b8 Introduce a filter to send bad request results with details when ModelState is invalid (#6849)
* Introduce a filter to send bad request results with details when ModelState is invalid

Fixes #6789
2017-09-21 11:09:32 -07:00
Hao Kung 95c10050c9 Stop using obsolete version of AddScheme in test 2017-09-20 12:48:46 -07:00
Javier Calvarro Nelson 85f3c841f1 Revert "Revert "Improvements to the testing package.""
This reverts commit 7b28334c41.
2017-09-19 21:45:05 -07:00
Ryan Brandenburg 7b28334c41 Revert "Improvements to the testing package."
This reverts commit 96bd2769d0.
2017-09-19 18:02:53 -07:00
Pranav K 127d23a022 Parse LanguageVersion correctly
Fixes https://github.com/aspnet/Mvc/issues/6611
2017-09-19 13:38:40 -07:00
Pranav K f0a5af2ba7 Revisit the unwrapping code in ControllerActionInvoker
Fixes #6679
2017-09-19 09:49:37 -07:00
Javier Calvarro Nelson 96bd2769d0 Improvements to the testing package.
* Detect a ConfigureDefaultBuilder static method on Program.cs of the test site
and use it to initialize the IWebHostBuilder instance that we configure for testing.
* Make use of the new service configuration extensibility points in Hosting to override
services for testing.
* Get rid of MvcWebApplicationBuilder and move MVC specific methods into extension methods.
2017-09-18 18:12:01 -07:00
Kiran Challa 72eb546329 Added attribute adapter for DataAnnotation's FileExtensionsAttribute 2017-09-18 16:20:26 -07:00
Doug Bunting fd9cb08790 Add Switch.Microsoft.AspNetCore.Mvc.UseDateTimeTypeForDateTimeOffset quirks mode
- patch recipients can use switch to undo the #6648 fix
2017-09-18 15:13:43 -07:00
Doug Bunting 6041c6b966 Auto-select `type="text"` for `DateTimeOffset` values
- cherry-picked from 7e4a8fe in dev
- #6648
- a different take on #4871
- `DateTime` can also round-trip `DateTimeKind.UTC` with `[DataType("datetimeoffset")]` or `[UIHint("datetimeoffset")]`
- since they're now handled differently by default, add more `DateTime` tests
- expand tests involving `Html5DateRenderingMode.CurrentCulture`

nits: make VS-suggested changes to files updated in this PR
2017-09-18 15:13:33 -07:00
Pranav K 9f5e4eb483 Allow "page" route parameter to be used in Mvc controllers
Fixes #6660
2017-09-18 15:02:13 -07:00
Kiran Challa 47287c508e Added new extension methods to configure all MVC localization services
[Fixes #5436] Must call `AddViewLocalization()` to use `IStringLocalizer<T>` in an application
2017-09-18 14:28:55 -07:00
Kiran Challa 23b7d8f62a Added RequestFormLimits filter.
[Fixes #5128] Overriding Request Form max upload limit
2017-09-18 13:48:15 -07:00
Ryan Nowak c09575dbd0 Fix #4914 patternize filter overrides
Adding some convenience methods to the context class and updating our
code to use them.
2017-09-18 12:12:44 -07:00
Jass Bagga b3aa691549 Add EnableRangeProcessingSwitch for FileContentResult and Fil… (#6839)
Addresses #6792
2017-09-18 10:57:49 -07:00
Pranav K c13cef6a74 Injecting IViewLocalizer into Razor Page causing IndexOutOfRangeException
Fixes #6694
2017-09-15 15:58:32 -07:00
Pranav K 776c2604f8 Introduce opinionated API defaults.
* Introduce ProblemDescriptionAttribute to enhance some 4xx messages and produce better API description.
* Introduce IErrorDescriptionProvider to modify the shape of error response.

Fixes #6785, Fixes #6786
2017-09-14 17:07:34 -07:00
Pranav K 037c1ec47d Make @inherit + Razor Pages + _ViewImports work
Fixes #6769
2017-09-14 12:34:00 -07:00
Kiran Challa 35601f95b3 Added a model binder for handling Enum types. [Fixes #6329] Why don't we check for Enum.IsDefined on action parameters of enum type 2017-09-14 08:25:05 -07:00
Ryan Nowak db2d9ee56f Additional fixes for #4604 2017-09-13 23:39:00 -07:00
Charlie Daly 9db92dc6a7 JsonResultExecuter logs type of result.
- MvcJsonLoggerExtensions.JsonResultExecuting logs result type instead of value
- Nulls handled more elegantly.
- Two tests added to JsonResultExecutorTests.cs.
- #4604
2017-09-13 23:39:00 -07:00
Nick Chapsas db397d812b TagHelperOutput extension methods for class value manipulation (#6565)
* Added TagHelperOutput extension methods for class value manipulation
2017-09-13 11:58:10 -07:00
Kiran Challa 4f18d99d02 Added RedirectToAction overload with no arguments 2017-09-12 17:17:48 -07:00
Kiran Challa 06f6de6c11 Changed RequestSizeLimitAttribute to create an authorization filter rather than a resource filter.
[Fixes #6777] RequestSizeLimit is ignored
2017-09-12 17:03:24 -07:00
Pranav K de38922601 Allow BindPropertyAttribute to be applied on PageModel
Fixes #6653
2017-09-12 10:34:19 -07:00
Pranav K 63397653fa Make DefaultApiDescriptionProvider understand ActionResult<T>
Fixes #6784
2017-09-11 14:20:38 -07:00
Pranav K 6bf165f22f Update default Razor search paths to include ~/[PagesRoot]/Shared
Fixes #6604
2017-09-11 14:11:39 -07:00
Kiran Challa 3beb310866 Avoid saving TempData in case of unhandled exceptions. [Fixes #6598] BUG? Accessing TempData prevent response to have content on error. 2017-09-07 13:13:27 -07:00
Pranav K 717f1e6f7d Normalize paths in RazorViewEngine prior to invoking page factory
Fixes #6672
2017-09-07 11:36:31 -07:00
Pranav K a7cc243942 Introduce ProblemDescription 2017-09-06 18:46:35 -07:00
Pranav K 151cf44607 Introduce ActionResult<T> 2017-09-06 18:46:06 -07:00
Pranav K bac68ba3c2 Injecting IViewLocalizer into Razor Page causing IndexOutOfRangeException
Fixes #6694
2017-09-06 13:54:38 -07:00
Doug Bunting 7e4a8fe479 Auto-select `type="text"` for `DateTimeOffset` values
- #6648
- a different take on #4871
- `DateTime` can also round-trip `DateTimeKind.UTC` with `[DataType("datetimeoffset")]` or `[UIHint("datetimeoffset")]`
- since they're now handled differently by default, add more `DateTime` tests
- expand tests involving `Html5DateRenderingMode.CurrentCulture`

nits: make VS-suggested changes to files updated in this PR
2017-09-05 16:05:13 -07:00
Doug Bunting 8645ada6b5 Remove no-op behaviour for no-content `<label></label>` elements
- #6638
2017-08-31 09:21:44 -07:00
bchavez 16c267d95e House Cleaning - Spelling and grammar 🚿 2017-08-30 14:58:44 -07:00
Nate McMaster b811e69d00 Use PackageLineup to manage PackageReference versions
- Move the Mvc.Performance project from test/ to benchmarks/.
 - Remove the Version attribute on PackageReference.
 - Add a reference to two PackageLineup's.
 - Add snippet to README explaining the additional requirement to run build.cmd /t:restore.
 - Add a target to check that packages have been pinned.
2017-08-30 12:14:11 -07:00
Pranav K b82200851f Do not re-discover runtime compiled RazorPage files for precompiled Razor Pages.
Fixes #6718
2017-08-29 16:15:07 -07:00
Kiran Challa b2f9ad1b67 Changed CookieTempDataProvider's CookieSecurePolicy from SameAsRequest to None 2017-08-29 14:55:52 -07:00
Kiran Challa cfc05104e4 Updated to use WebEncoders utility's Base64Url encode/decode functionality 2017-08-29 08:37:28 -07:00
Ryan Nowak ca6c76c358 Add a test where [Ignore..] gets overridden
Fixing a small gap in our AF functional tests.
2017-08-25 13:55:27 -07:00
Pranav K 7b2a4ff465 Allow "page" route parameter to be used in Mvc controllers
Fixes #6660
2017-08-24 15:44:37 -07:00
Pranav K 900a5c7c4c Add support for ResponseCache in Razor Pages
Fixes #6437
2017-08-18 16:25:40 -07:00
Pranav K 3e8da43279 Pinning versions for 2.0.0 2017-08-17 15:00:47 -07:00
Nate McMaster 3a710c3d64 Upgrade to xunit 2.3.0-beta4 2017-08-17 10:45:03 -07:00
Nate McMaster b43b244830 Use Directory.Build.props/targets 2017-08-16 12:30:13 -07:00
Pranav K 5fee1cac83 Merge pull request #6655 from aspnet/rel/2.0.0
Refactor CORS support out of MVC Core
2017-08-14 16:50:14 -07:00
Javier Calvarro Nelson f2a8c1cea7 Refactor CORS support out of MVC Core 2017-08-14 11:40:56 -07:00
Pranav K eb5c23ea8e Parse LanguageVersion correctly
Fixes https://github.com/aspnet/Razor/issues/1591
2017-08-08 17:25:28 -07:00
Pranav K 8ab361ae42 Merge pull request #6582 from aspnet/rel/2.0.0
Add global filters with the right scope
2017-07-21 14:02:29 -07:00
Pranav K 2ef26486dd Add global filters with the right scope
Previously global filters were added to the page application model with Action scope. This
would have resulted in incorrect ordering of filters during execution. We'll instead add
global filters separately with the right scope. #6579 will be used to express global filters
as part of the application model.
2017-07-21 14:02:07 -07:00
Pranav K 6eba0e2128 Merge pull request #6578 from aspnet/rel/2.0.0
Rel/2.0.0
2017-07-21 10:51:10 -07:00
Pranav K a5b55edb93 Fix filter order (#6577)
* Fix filter order
2017-07-21 10:50:34 -07:00
Hao Kung 36e24b7a31 Fix AuthZ Regression (#6574) 2017-07-20 21:18:53 -07:00
Pranav K b879557af5 Increase wait timeouts for flaky tests (#6548) (#6556)
* Increase wait timeouts for flaky tests

Fixes #6540
2017-07-17 16:40:37 -07:00
Pranav K 81fa9c8fcf Increase wait timeouts for flaky tests (#6548)
* Increase wait timeouts for flaky tests

Fixes #6540
2017-07-17 16:40:06 -07:00
Pranav K 1810925b13 Add _ViewStart and _ViewImports to embedded view test 2017-07-14 10:34:29 -07:00
Pranav K 998547839e Ensure IPageApplicationModelProviders are invoked in the sequence of their Order
Fixes #6536
2017-07-14 10:11:53 -07:00
Javier Calvarro Nelson 3d76fdf086 Private cache for cache tag helper and distributed cache tag helper 2017-07-10 15:00:19 -07:00
John Luo 492f820cf7 Missed caching API updates 2017-07-07 22:06:20 -07:00
John Luo 9ebece44e0 Reacting to caching API updates 2017-07-07 21:22:49 -07:00
Jass Bagga b4fe715c71 Revert breaking change (#6519)
Addresses #6518
2017-07-07 17:09:36 -07:00
Ryan Brandenburg 9e2f8b7cb5 Comment on remaining PackageTargetFallbacks 2017-07-07 15:01:07 -07:00
Javier Calvarro Nelson e1c1682065 Testing infrastructure cleanup 2017-07-07 13:18:42 -07:00
Ryan Nowak f80f7cefa5 Fix #6480
This change logs when we encounter and exception reading temp data from a
cookie and swallows the exception. Additionally, we clear the cookie so
that this won't happen on subsequent requests.

This will handle cases where data protection is misconfigured, or a
request just has general garbage in the cookies.
2017-07-07 13:14:03 -07:00
Hao Kung e09a0f5b7c React to auth default changes 2017-07-07 12:08:11 -07:00
Pranav K f1c4aa14d3 Simplify CacheTagHelper.ProcessAsync (#6506)
* Simplify CacheTagHelper.ProcessAsync

Modify ProcessAsync to cause all tasks to fail when the ongoing GetChildContentAsync call that they're
awaiting on fails.
2017-07-07 11:15:19 -07:00
Pranav K fc106ab793 Revive call to FormattingUtilities in XmlDataContractSerializerOutputFormatter
Fixes #6235
2017-07-07 10:11:28 -07:00
Ajay Bhargav Baaskaran 05f5d59e44 Fix build break 2017-07-06 19:43:42 -07:00
Pranav K 288da1a405 RedirectToPage(page, handler) does not work (#6503)
Fixes #6436
2017-07-06 14:12:57 -07:00
Hao Kung a15c2afe85 React to auth 2017-07-06 13:42:05 -07:00
Chris R b9541be20d React to ISession cancellation changes 2017-07-05 14:34:48 -07:00
Pranav K 8963b83dd3 Remove ParseOptions and CompilationOptions from RazorViewEngineOptions (#6487)
* Remove ParseOptions and CompilationOptions from RazorViewEngineOptions

Fixes #6009
2017-07-05 14:18:49 -07:00
Nate McMaster 1eb7f9e032 Add CookieBuilder to CookieTempDataProviderOptions and obsolete duplicate API (#6472) 2017-07-05 10:19:13 -07:00
Ryan Nowak 8d9c16132a Fix #6479 - remove IFileProvider constructor
The RazorProject implementation used by MVC at runtime has a constructor
that takes an IFileProvider (used by tests). This causes ambiguities
when a user registers an IFileProvider in DI.

Cleaning up tests to use a mock instead of the file provider directly
2017-07-04 13:48:56 -07:00
Ryan Nowak a23307e2b1 Check for properties that can't befound
If you give ModelExpressionProvider a lambda with a private property
you'll end up here. This wasn't common before, but it seems like users
are more likely to try it with pages.

Model Metadata and Model Binding don't handle private properties, so
supporting it in Model Expressions seems less than useful.

This isn't a breaking change because this case would have resulted in a
null-ref. Addresses #6400
2017-07-04 13:26:17 -07:00
Doug Bunting c351712419 Add `FloatingPointTypeModelBinderProvider` and related binders
- #5502
- support thousands separators for `decimal`, `double` and `float`
- add tests demonstrating `SimpleTypeModelBinder` does not support thousands separators for numeric types
- add tests demonstrating use of commas (not thousands separators) with `enum` values
2017-07-03 17:55:04 -07:00
Javier Calvarro Nelson c50f55d1de Add a default sliding expiration of 30 seconds on Memory and Distributed Cache Tag Helpers. 2017-07-03 17:06:47 -07:00
Sébastien Ros 13e76c24d3 Dispose CancellationTokenSource created in CacheTagHelper (#6293)
Fixes #5649
2017-07-03 14:59:48 -07:00
Javier Calvarro Nelson 728b96344d [Fixes #6274] Fix and re-enable skiped test 2017-07-03 13:00:38 -07:00
Hao Kung eeee3ef731 Add SignOut overload + Use new auth api (#6476) 2017-07-03 12:32:11 -07:00
Javier Calvarro Nelson d917504c14 [Fixes #6468] Clean up the productionized testing infrastructure 2017-07-03 10:15:06 -07:00
Pranav K 7c5a16c105 Add RemoveType methods of PageConventionCollection 2017-06-30 16:27:51 -07:00
Henk Mollema 948982ebff Create custom collection for model binder providers
Fixes #6161
2017-06-30 15:44:07 -07:00
Pranav K bc86ea4e47 Move convention extensions from RazorPagesOptions to PageConventionCollectionsExtensions
Fixes #6462
2017-06-30 14:25:10 -07:00
Doug Bunting f76a390a4e Fall back to linear search for prefix matches
- #6469
2017-06-30 10:59:07 -07:00
Doug Bunting 293ac81fe1 Use ordinal comparisons in `ExpressionTextCache`
- #6349
- C# field and property names are case-sensitive
  - it's not important (where this cache is used) that HTML field names are case-insenstive
2017-06-29 14:59:06 -07:00
Jass Bagga 17f6b17a6d Add RequestSizeLimitAttribute (#6453)
Addresses #6352
2017-06-29 13:04:27 -07:00
Ryan Nowak 579aca0121 Define semantics for pagemodels
Fixes #6210

Now a pagemodel requires a [PageModel] somewhere in it's hierarchy. We
don't do a guess at whether or not your model class is a PageModel.
2017-06-29 09:24:57 -07:00
Doug Bunting a90f4118ad Do not include type names in `ModelState` error messages
- #6076
- add resources and accessors specifically for the element / parameter cases
- avoid `metadata.GetDisplayName()` where possible
- fill in the `ValidationContext` that `ValidatorObjectAdapter` uses
  - e.g. `Validate_NestedComplexType_IValidatableObject_Invalid()` test fails without this

Possible future work:
- improve error message used for `ModelMetadata.IsRequired` elements and parameters
- use something besides the type for `ValidationContext.DisplayName` of elements and parameters

nits:
- trailing whitespace
- use more `out var`
2017-06-28 15:16:23 -07:00
Pranav K 8df3032540 Add support for specifying filters on page models.
Fixes #6334
2017-06-28 14:43:02 -07:00
Henk Mollema 7166dfecd7 Add generic overloads on FilterCollection 2017-06-28 09:03:48 -07:00
Ryan Nowak 1886d53d89 Remove [BindProperty] on class
This isn't a good fit with consistency with controllers. Discussed with
@DamianEdwards and we agreed to remove this for now and bring it back in
the future if there's a real need for it.
2017-06-28 08:18:42 -07:00
Nate McMaster 12ea28af5c React to API change in HttpAbstractions 2017-06-27 17:33:46 -07:00
Pranav K 9acfc8d221 Watch _ViewImports outside the pages root for changes
Fixes #6428
2017-06-27 09:30:07 -07:00
Pranav K d1813a7cd7 Normalize paths returned by view location expanders
Fixes #6448
2017-06-27 08:48:07 -07:00
Ryan Nowak 0ad9c7d4eb Making Pages Binding Consistent
This changeset reckonciles the binding work we did for pages with
controllers.

A quick summary:
- Moves [BindProperty] to the MVC namespace (#6401)
- Makes [FromRoute] and friends behave consistently (#6402)
- Makes [BindProperty] work with controllers (untracked)
2017-06-26 18:11:44 -07:00
Hao Kung cf09af52eb Remove duplicate type 2017-06-26 16:32:51 -07:00
Hao Kung 4e004c22ba React to options 2017-06-26 15:49:23 -07:00
Jass Bagga f4a86f5511 Add DiagnosticSource to RazorView (#6386)
Addresses #6222
2017-06-26 15:35:31 -07:00
Pranav K e5da44a82f Generate full pdbs for views on desktop and re-enable runtime error tests (#6442)
* Generate full pdbs for views on desktop and re-enable runtime error tests

StackTraceHelper \ PortablePdbReader used by Diagnostics is only useful for
reading portable pdbs on disk. However pdbs produced by views are entirely
in memory and therefore cannot be read. Consequently
we choose to generate full pdbs for views on Windows (when possible).
2017-06-26 10:46:12 -07:00
Javier Calvarro Nelson 052db40567 Fix documentation and target files issues 2017-06-23 19:09:45 -07:00
Javier Calvarro Nelson 35152d5933 [Fixes #6233] Productionize and harden our functional testing infrastructure 2017-06-23 18:12:41 -07:00
Pranav K aa5a348385 _ViewStart.cshtml not picked up when added to the root of the app
Fixes #6308
2017-06-23 08:25:58 -07:00
Pranav K 0dfffd45c2 RazorPages page directives missing quotes should alert user
Fixes #5868
2017-06-22 15:13:38 -07:00
Jass Bagga 9d138affa2 Suppress JsonPatchDocument validation (#6429)
Addresses aspnet/JsonPatch#80
2017-06-22 14:14:11 -07:00
N. Taylor Mullen 53fb676069 React to new page directive expectations.
- This will be reverted once https://github.com/aspnet/Razor/issues/1448 has been completed.
2017-06-20 12:53:23 -07:00
Pranav K c89f0a1e43 Allow AddPageRoute to route to pages root. (#6412)
* Allow AddPageRoute to route to pages root.
Fixes #6338
2017-06-20 12:33:33 -07:00
Kiran Challa 3fc3d8d060 Merge branch 'rel/2.0.0-preview2' into dev-gate 2017-06-15 03:48:49 -07:00
Kiran Challa 0c6460ab64 Changed WebApiCompatShim projects to use PackageTargetFallback 2017-06-14 16:08:04 -07:00
Ryan Brandenburg 8832014516 PackageTarget->AssetTarget 2017-06-14 15:03:43 -07:00
Ryan Nowak dfe04bc917 Fix #5979 - Remove hardcoding of tempdata for pages 2017-06-12 15:05:36 -07:00
Pranav K 6961cf9211 Cleanup unused precompilation code 2017-06-09 16:45:43 -07:00
Pranav K b1b7252ddc Merge pull request #6383 from aspnet/rel/2.0.0-preview2
Modify ControllerBase.RedirectToPageResult to call the correct overload
2017-06-09 15:11:23 -07:00
Pranav K d92d8cddeb Modify ControllerBase.RedirectToPageResult to call the correct overload 2017-06-09 14:40:29 -07:00
Pranav K a5f3a6425e Remove TaskCache and TaskCacheOfT 2017-06-08 08:19:20 -07:00
Pranav K 8662422e18 Merge pull request #6376 from aspnet/rel/2.0.0-preview2
Perform case insensitive lookups for precompiled views
2017-06-07 15:19:42 -07:00
Pranav K 1124eb5016 Perform case insensitive lookups for precompiled views 2017-06-07 15:19:21 -07:00
Pranav K 8f883e8e13 Use RazorViewAttribute \ RazorPageAttribute for view discovery 2017-06-07 13:49:24 -07:00
Pavel Krymets 4bf20035e4 Merge remote-tracking branch 'origin/rel/2.0.0-preview2' into dev 2017-06-07 13:48:27 -07:00
Pavel Krymets 2845e9b7d4 Add configuration package reference because Logging dropped it (#6375) 2017-06-07 13:47:39 -07:00
Nate McMaster 945661ad0e Remove unused test sample project (#6368) 2017-06-06 15:56:31 -07:00
N. Taylor Mullen e51d3c262c Merge branch 'rel/2.0.0-preview2' into dev 2017-06-06 13:13:11 -07:00
N. Taylor Mullen 3448b6a74e Re-enable net461 functional tests.
aspnet/Coherence-Signed#540
2017-06-06 13:10:29 -07:00
Jass Bagga 7ffd88757d Respond to RangeHelper refactor (#6348)
Respond to https://github.com/aspnet/StaticFiles/pull/200
2017-06-06 11:22:35 -07:00
Kiran Challa f1dd475eae Merge branch 'rel/2.0.0-preview2' into dev 2017-06-06 09:35:33 -07:00
Kiran Challa af91b58bd3 Enabled a way to buffer request body in formatters 2017-06-06 09:33:32 -07:00
Pranav K 628dfc39c1 Remove model type from RazorPageAttribute 2017-06-05 16:07:14 -07:00