Commit Graph

2018 Commits

Author SHA1 Message Date
N. Taylor Mullen ee80f5f84c React to aspnet/Razor#621. 2016-04-05 16:08:01 -07:00
Pranav K 7cb1dca467 JsonInputFormatter fails to use custom SerializerSettings
Fixes #4270
2016-04-05 10:19:49 -07:00
N. Taylor Mullen a140440196 Add `AssemblyCompany`, `AssemblyCopyright` and `AssemblyProduct` attributes to the assembly. 2016-04-04 16:25:47 -07:00
N. Taylor Mullen 687fd72efd Add Visual Studio specific RC1 binaries.
- This is needed for Visual Studio RC1 backwards compatibility.
2016-04-04 15:21:19 -07:00
Pranav K 701869fd53 Remove DefaultAssemblyPartDiscoveryProvider.GetAssemblyName
Fixes #4366
2016-04-03 10:37:10 -07:00
Pranav K 330e98d1fc Revert "Revert "Updating to the newest Roslyn packages""
This reverts commit 87e89befc8.
2016-04-03 09:07:31 -07:00
Pranav K b4310ac8a8 Modify RoslynCompilationService to generate portable pdbs
Fixes #4330
2016-04-03 08:55:11 -07:00
Kiran Challa 4cd3012886 Fix mixed route for action error message 2016-04-03 06:55:11 -07:00
N. Taylor Mullen 56bbb215ec React to aspnet/Razor#721. 2016-04-03 00:00:19 -07:00
jacalvar 574ecbb3eb [Fixes #4087] Add support for AddTagHelpersAsServices()
* Added TagHelperFeature and TagHelperFeatureProvider to perform tag helper discovery.
* Changed tag helper discovery to use application parts when using tag helpers as services.
* Added FeatureTagHelperTypeResolver to resolve tag helper type definitions from the list of application parts.
* Added AddTagHelpersAsServices extension method on IMvcBuilder and IMvcCoreBuilder that
  performs tag helper discovery through the ApplicationPartManager and registers those tag helpers as
  services in the service collection. Assemblies should be added to the ApplicationPartManager
  in order to discover tag helpers in them in them. The @addTagHelper directive is still required on
  Razor pages to indicate what tag helpers to use.
2016-04-02 10:32:48 -07:00
Doug Bunting 384fd1f218 Quick fix: Address a couple of nits in / around `ViewDataDictionary`
- remove duplicate `null` checks in `ViewDataDictionary` constructors
- correct a couple of code comments
- use a `public` constructor for `ViewDataDictionary` in `ViewExecutor`
2016-04-01 15:31:47 -07:00
Sebastien Ros 341430eae5 [Fixes #4246] Introducing CacheTagKey
Prevent string allocations in CacheTagHelper
Fix hash collision by checking the serialized key with the actual content for DistributedCacheTagHelper
2016-04-01 15:06:29 -07:00
BrennanConroy f22e234dab React to logging changes 2016-04-01 12:00:33 -07:00
ryanbrandenburg 906ac728c7 Null-check PagedBufferedStringWriter 2016-04-01 11:50:46 -07:00
jacalvar f638c051fa Remove IAssemblyProvider and update DNX to work with application parts.
* Remove IAssemblyProvider.
* Remove DefaultAssemblyProvider in favor of DefaultAssemblyPartDiscoveryProvider.
* Update AddMvcDnx to add the list of DNX discovered assemblies to the list of application parts.
2016-04-01 11:01:09 -07:00
jacalvar 5246125cb7 [Fixes #4087] Add AddViewComponentsAsServices() and ServiceBasedViewComponentActivator
* Added ViewComponentFeture and ViewComponentFeatureProvider to perform view component discovery.
* Changed view component discovery to use application parts.
* Changed ViewComponentDescriptorProvider to make use of Application parts.
* Added AddViewComponentsAsServices method on IMvcBuilder that performs view component
  discovery through the ApplicationPartManager and registers those view components as
  services in the service collection. Assemblies should be added to the ApplicationPartManager
  in order to discover view components in them in them.
2016-04-01 10:55:04 -07:00
Pranav K 87e89befc8 Revert "Updating to the newest Roslyn packages"
This reverts commit 50af106b6a.
2016-04-01 10:44:33 -07:00
jacalvar 0d0aad41f5 [Fixes #4014] Add overload to AddControllerAsServices that uses the default controller discovery logic.
* Added ControllerFeature and ControllerFeatureProvider to perform controller discovery.
* Changed controller discovery to use application parts.
* Changed ControllerActionDescriptorProvider to make use of Application parts.
* Simplified AddControllerAsServices to not accept any parameter and perform
  controller discovery through the ApplicationPartManager in the IMvcBuilder
  and IMvcCoreBuilder. Assemblies should be added to the ApplicationPartManager
  in order to discover controllers in them.
2016-04-01 09:29:37 -07:00
Pranav K 50af106b6a Updating to the newest Roslyn packages 2016-04-01 07:11:50 -07:00
Ryan Nowak 144766f2e3 Simplify BindAttribute - rename PredicateProvider
This change renames IPropertyBindingPredicateProvider to
IPropertyFilterProvider. The changes here are mostly renames of
parameters/variables from predicate -> propertyFilter. I did a
find+replace and left the term 'predicate' in some of the docs because it
refers to a predicate in the abstract sense.

This change also simplifies BindAttribute and removes support for type
activation.
2016-03-31 12:34:02 -07:00
jacalvar 1bd66ffda0 [Fixes #4089] Add support for application parts
This commit introduces application parts as a concept on MVC.

An application part is an abstraction that allows you to expose some
feature or corncern in a way that is decoupled from their underlying source.
Examples of this include types in an assembly, emdeded resources, files on
disk etc.

Application parts are configured during startup by adding or removing them from
the application part manager available as part of IMvcBuilder and IMvcCoreBuilder.

The application part manager provides the ability to populate features from the
list of available application parts by using a list of application feature providers.
Application feature providers are responsible for populating a given feature given a
list of application parts.

Examples of application providers can be a ControllerFeatureProvider
that goes through the list of application parts, sees which one of those parts exposes types,
determines which of those types are controller types, and adds them to a ControllerFeature
that holds a list of all the types that will be considered controllers in the application.
2016-03-31 12:14:04 -07:00
mnltejaswini 7fbd407ad5 [Perf] Rewrite ExpressionHelper.GetExpressionText using StringBuilder 2016-03-31 11:26:37 -07:00
jacalvar de9ffb13c7 [Fixes #3732] Simplify controller discovery.
* Introduce ControllerAttribute and use it to mark base classes as controllers.
* Changed rules for controller discovery to:
  * All controller types must be public, concrete, non open generic types.
  * NotController attribute is not applied to any type oif the hierarchy.
  * The type name ends with controller.
  * Controller attribute is applied to the type or to one of its ancestors.
2016-03-31 10:50:26 -07:00
jacalvar 680e9bb2d1 Refactor and cleanup tag helper creation.
* Moved instantiation of tag helpers into DefaultTagHelperActivator.
* Introduced ITagHelperFactory for handling the setup of new tag helper instances.
2016-03-31 10:47:17 -07:00
Ryan Nowak 96e5c7b22e Always clear buffers returned to the memory pool
Just a safety measure in case anything evades our 'flattening'. I don't
have any evidence that we're failing to clear something, but we want this
here as a safeguard.
2016-03-30 16:12:30 -07:00
jacalvar b04bb124b0 [Fixes #4317] UrlResolutionTagHelper doesn't work with TagHelpers that run before and supress output 2016-03-30 15:55:11 -07:00
Kiran Challa e0212752e5 Removing AuthorizationFilterAttribute as we do not want users to easily create their own authorization implementation. They should instead
use authorization policies and requirements(IAuthorizationRequirement) to enforce authorization.
[Fixes #4233] AuthorizationFilterAttribute returns UnauthorizedResult rather than ChallengeResult
2016-03-30 15:34:41 -07:00
Ryan Nowak e1abb47b98 Fix #4238 IFormFile model binder suppresses validation
This change no longer suppresses validation for IFormFile and
IFormFileCollection model values. This will allow the use of [Required] on an
IFormFile model, or a custom attribute for validating IFormFileCollection.

These types already have ValidateChildren = false, so we don't recurse
into them.
2016-03-30 14:09:28 -07:00
Kiran Challa 6e9a6a2db1 Added new attribute ProducesResponseTypeAttribute to enable ApiExplorer to expose response type and StatusCode.
[Fixes #4101] StatusCode Metadata
2016-03-30 11:51:58 -07:00
Ryan Nowak fb81a5e11e Introducing ModelBinderFactory
This change separates model binding into IModelBinderProvider (decides
which binder to use) and IModelBinder (does binding). The
IModelBinderFactory is a new services with coordinates the creation of
model binders.
2016-03-29 15:45:14 -07:00
Pranav K 12d7093278 Revert "Remove DependencyModel dependency"
This reverts commit 4299a4d50b.
2016-03-29 07:29:43 -07:00
Pranav K 529fa67c2b Adding tests for PrefixContainer
Fixes #4045
2016-03-28 14:31:17 -07:00
Kévin Chalet f9d24a8521 Introduce SignInResult/SignOutResult and ControllerBase.SignIn/SignOut 2016-03-28 12:45:42 -07:00
Doug Bunting 749a51e9ae Quick fix: Another typo in the same resource name 2016-03-26 17:36:38 -07:00
Doug Bunting ea9acda0b8 Quick fix: Correct typo in resource name 2016-03-26 17:01:19 -07:00
ryanbrandenburg 5fe284a486 SetContent->SetHtmlContent 2016-03-25 16:48:06 -07:00
ryanbrandenburg e8d0cc1668 SetContent->SetHtmlContent 2016-03-25 12:09:07 -07:00
Doug Bunting 43836aec18 An `ObjectPoolProvider` is always registered
- react to aspnet/Hosting/pull#673
2016-03-25 11:20:15 -07:00
Sebastien Ros 476d2eb81d Reacting to changes in Caching 2016-03-25 10:56:34 -07:00
mnltejaswini 66ff9939c3 Cache Member Access Expression Text to avoid ExpressionHelper.GetExpressionText
Part 1 Fix for  #3921
2016-03-25 09:12:02 -07:00
Pranav K 8c35a4e315 Remove transitive dependency 2016-03-23 13:07:19 -07:00
Pranav K 06289945d0 Reacting to CoreCLR package changes 2016-03-22 14:49:43 -07:00
ryanbrandenburg a78f77afde Add StatusCode helpers to ControllerBase 2016-03-21 15:26:13 -07:00
Ajay Bhargav Baaskaran 8e6b4980e3 [Fixes #4310] Moved AuthorizeFilter and CorsAuthorizationFilter to a public namespace 2016-03-21 11:54:03 -07:00
mnltejaswini fd984563c3 [Perf] Optimize CoerceResultToTaskAsync to remove MethodInfo.Invoke 2016-03-17 16:12:55 -07:00
Pranav K fb07fee465 Reduce grunt work in Mvc 2016-03-17 15:25:33 -07:00
Pranav K f651f18d3a Use a prefix tree as a backing store for ModelStateDictionary 2016-03-17 10:09:36 -07:00
Ryan Nowak fec1268bf3 Remove ModelBinding features from ResourceFilters
Removes all of the ModelBinding configuration support from Resource
Filters. We haven't come up with concrete scenarios around these features,
and don't want to paint ourselves into a corner with extensibility.
2016-03-16 16:33:14 -07:00
Pranav K 4299a4d50b Remove DependencyModel dependency 2016-03-16 16:05:04 -07:00
jacalvar cef81adb21 [Fixes #4237] Include Assembly-Qualified type name in ActionDescriptor.DisplayName 2016-03-16 15:26:25 -07:00
Sebastien Ros ec560bdfe0 Refactoring CacheTagHelper
- Introducing a new distributed cache tag helper
- Sharing base implementation for both cache tag helper
- Preventing concurrent execution of cache tag helpers

Fixes #4147 , Fixes #3867
2016-03-15 15:46:51 -07:00
Pranav K c03aabbff5 RazorCompilationService should throw a meaningful error when a user produces an application without `preserveCompilationContext`
Fixes #4202
2016-03-15 11:19:38 -07:00
Pranav K bf1fc7dab3 Reacting to Hosting changes 2016-03-15 10:50:53 -07:00
ryanbrandenburg 1ae1cdb10b * Remove ServiceProvider 2016-03-15 09:57:17 -07:00
Ajay Bhargav Baaskaran 73f9d26fb1 Updated Json.Net version 2016-03-14 15:05:35 -07:00
mnltejaswini 007c47d065 [Perf] Optimize controller action invoke
Fixes aspnet/MVC#3903
2016-03-14 10:17:55 -07:00
Pranav K 4f709bdbfd Fixing CI build break 2016-03-14 00:38:17 -07:00
Doug Bunting ffe2d2609a Correct HTML and JavaScript encoding of `<link>` and `<script>` attribute values
- #4083
- `<link>` tag helper did not HTML encode `href` values in fallback elements
- `<script>` tag helper did not correctly encode any attribute value in fallback elements
 - e.g. double quotes in literal strings would slip through
- only needed to change one existing unit test (!!); so added a bunch

nit: use `Process()`, not `ProcessAsync()` in `<script>` tag helper tests
2016-03-11 20:07:32 -08:00
ryanbrandenburg f1fa1bd8f4 * Remove JsonViewComponentResult 2016-03-11 11:40:54 -08:00
Brice Lambson 7b70da14bc Don't reference facades in NuSpec
These can be removed entirely after dotnet/cli#164
2016-03-10 14:07:45 -08:00
mnltejaswini 45a72a0e18 [Perf] Optimize creation of VDD
Fixes #3906
2016-03-10 13:39:01 -08:00
jacalvar 2b7a98a4d6 [Fixes #4152] Add HttpOptionsAttribute 2016-03-09 18:14:38 -08:00
jacalvar 6b369ef291 [Fixes #4102] DefaultHtmlGenerator should attempt to properly format values for `<input type="date">` and `<input type="time">` 2016-03-09 17:22:02 -08:00
Pranav K 78e53a22dd Remove extra dependencies that produce build warnings 2016-03-09 12:47:39 -08:00
Pranav K 6d3bd33c64 Revive DefaultRoslynCompilationServiceTest
Partially fixes #4140
2016-03-09 11:50:14 -08:00
Pranav K 501547d630 Remove IMvcRazorHost.MainClassPrefix 2016-03-09 11:50:07 -08:00
N. Taylor Mullen 5612ca845f React to aspnet/Razor#684.
- Modified `UrlResolutionTagHelper` to utilize new CSS selector attributes to restrict when it applies. It now only appies to tags that have their values starting with `~/`.
- `UrlResolutionTagHelper` no longer applies to dynamic content such as `href="@SomethingResultingInTildaSlash"`.
- Updated tests to reflect new behavior.
2016-03-08 12:17:16 -08:00
Pranav K 5a7267a83d Revive DefaultAssemblyProviderTests
Partial fix for https://github.com/aspnet/Mvc/issues/4140
2016-03-07 17:01:58 -08:00
mnltejaswini d537ec06cc [Perf] Using single UrlHelper per HttpContext and one StringBuilder per UrlHelper to reduce allocations 2016-03-07 13:48:54 -08:00
Ajay Bhargav Baaskaran ca164db921 [Fixes #4214] Moved IUrlHelper to Mvc.Abstractions 2016-03-04 16:45:47 -08:00
Pranav K 7bd7b32fcb Reacting to Localization CookieName change 2016-03-04 10:33:50 -08:00
Pranav K 3aa3799494 Rename ICanHasViewContext to IViewContextAware
Fixes #4073
2016-03-04 10:33:49 -08:00
Ryan Nowak 0b7035ddcf Implement MoveTo semantics in Mvc
- Simplify things that used to rely on HtmlTextWriter. This behavior is
  now the default.

- Simplify a whole mess of Razor TextWriter code.

- Integration test for merging of TagHelper buffers back into the 'main'
  buffer.
2016-03-04 07:54:31 -08:00
Ajay Bhargav Baaskaran e2fd41e416 Added Company, Copyright and Product attributes to AssemblyInfo 2016-03-03 17:33:48 -08:00
Doug Bunting d3c24637b1 Correct `Type.IsAssignableFrom()` polarity
- #3482
 - see new tests; many failed without fixes in the product code
 - add support for binding `IFormFileCollection` properties
 - make `FormFileModelBinder` / `HeaderModelBinder` collection handling consistent w/ `GenericModelBinder`++
  - see also dupe bug #4129 which describes some of the prior inconsistencies
  - add checks around creating collections and leaving non-top-level collections `null` (not empty)
 - move smarts down to `ModelBindingHelper.GetCompatibleCollection<T>()` (was `ConvertValuesToCollectionType<T>()`)
  - add `ModelBindingHelper.CanGetCompatibleCollection()`
  - add fallback for cases like `public IEnumerable<T> Property { get; set; } = new T[0];`
- #4193
 - allow `Exception`s while activating collections to propagate
- part of #4181
 - `CollectionModelBinder` no longer creates an instance to check if it can create an instance
 - not a complete fix since it still creates unnecessary intermediate lists

nits:
- correct a few existing test names since nothing is not the same as `ModelBindingResult.Failed()`
- remove a couple of unnecessary `return` statements
- correct stale "optimized" comments
- explicit `(string)`
2016-03-03 09:55:01 -08:00
Pranav K ac58e8433c Fix build break 2016-03-03 06:27:23 -08:00
Doug Bunting b35922e373 Remove project name from output path
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 14:39:12 -08:00
jacalvar 63e818b2fe [Fixes #4204] React to changes in Localization. 2016-03-02 14:36:54 -08:00
Pranav K e9b766fe80 Updated missed ifdefs in netstandard conversion 2016-03-01 16:03:05 -08:00
N. Taylor Mullen 33d1aea8ea Transition to Netstandard.
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:39:31 -08:00
jacalvar 12f33de92c Make ServiceCollectionExtensions consistent 2016-03-01 12:03:54 -08:00
Kiran Challa b7cde3e58f [Fixes #4043] Figure out ControllerModel.AttributeRoutes 2016-03-01 10:28:24 -08:00
Pranav K abafceab52 Revert "Updating to Roslyn beta1 packages"
This reverts commit 5ac7691f2e.
2016-02-29 09:41:16 -08:00
Pranav K 5ac7691f2e Updating to Roslyn beta1 packages 2016-02-29 06:59:03 -08:00
Pranav K 54bc9a7327 Update Microsoft.AspNetCore.Mvc.Dnx to target net451 2016-02-28 20:23:29 -08:00
Doug Bunting f889965929 Simplify `IsAssignableFrom()` use
- standardize on the `Type` extension method; less verbiage
- `ModelMetadata` had a redundant `IsAssignableFrom()` call
- `ModelBindingHelper.ValidateBindingContext()` over-engineered and used just once
 - do useful bit inline in `KeyValuePairModelBinder` but now a silent "does not apply" case
2016-02-26 21:30:00 -08:00
Shahriar Gholami 1e5b0b9bec Allow to define section or/and body without the need to render it 2016-02-26 18:02:19 -08:00
Pranav K 385c21fbe2 Add Microsoft.AspNetCore.Mvc.Dnx to allow using Mvc with DNX 2016-02-26 15:14:32 -08:00
Pranav K 756953fd50 Use the entry assembly when DependencyContext is null
Fixes #4136
2016-02-25 06:23:06 -08:00
Ajay Bhargav Baaskaran 028c0fb131 Enabled xml doc generation 2016-02-24 12:19:46 -08:00
Pranav K 0bf650a789 Use a fixed version of Roslyn to allow Coherence to succeed 2016-02-24 10:48:18 -08:00
Caleb Nelton 5b0b0b95a7 Small Refactorings
Use nameof
Replace with single call to SingleOrDefault
Replace with single call to FirstOrDefault
Simplify conditionals
2016-02-23 19:01:09 -08:00
Pranav K 80b6996701 * Moving DNX dependencies to test only
* Updating Mvc tests to use dotnet test to run on dnxcore50
2016-02-23 18:58:42 -08:00
Sebastien Ros c259f82615 [Fixes #4112 #4093] Adding support for custom SSL port
New optional MvcOptions.SslPort. If not defined the redirection uses an empty port (default),
otherwise the custom port is used.
2016-02-23 10:21:11 -08:00
Pranav K 5b805bb12d Updating to use cli
Fixes #3908
2016-02-22 17:49:51 -08:00
Ajay Bhargav Baaskaran df5eb0a15c [Fixes #4092] Using System.Buffers in JsonResultExecutor 2016-02-19 16:45:26 -08:00
Kiran Challa 4123d83d26 [Fixes #4047] SelectTagHelpers: asp-items shouldn't require/depend on asp-for. 2016-02-19 10:03:45 -08:00
Kiran Challa fd3ee49987 [Fixes #4085] Controller helper inconsistency: HttpNotFound(), Ok() 2016-02-19 09:25:04 -08:00
matt kocaj 75c05be2f7 removing redundant 'http' prefixes from helper methods. 2016-02-19 09:25:03 -08:00
Ryan Nowak b557ca55d9 Fix behavior of StartsWithPrefix
This undoes a behavior change introduced in
7b18d1d3f1.

The intent was to have ClearValidationState do the right thing for a case
where a collection was bound to the empty prefix, and then used again with
TryUpdateModel.

This change was implemented by saying that a key like "[0].Foo" is a match
for the prefix of "Foo". This isn't really right, and it's only
interesting for the ClearValidationState case.

The problem is that we don't know what the keys look like for a
collection. We can assume that they start with [0] but that's not really a
guarantee, it's a guess.

This change fixes the behavior of StartsWithModel, and move the
responsibility for this case back into ClearValidationState.

This change also removes the call to ClearValidationState from
TryUpdateModel. If you need this behavior, then call ClearValidationState
manually. Trying to bind and then re-bind a model object isn't really what
we intend.
2016-02-17 11:16:16 -08:00