Commit Graph

1411 Commits

Author SHA1 Message Date
Kiran Challa 6ef8be92ff [Fixes #2541] Use custom stream writer for Xml output formatters 2015-05-15 12:12:11 -07:00
Harsh Gupta 22f1881cc6 Restoring modelvalidation node. 2015-05-14 18:38:26 -07:00
Ajay Bhargav Baaskaran 39642761b1 Added overload to ViewComponent.Json to accept JsonSerializerSettings 2015-05-14 15:45:41 -07:00
Ryan Nowak cc4ee1068d Fix #2414 Part 2 - Add [DefaultValue(...)] support to the invoker for
action parameters
2015-05-14 13:58:02 -07:00
Ryan Nowak 2fc983b23a Fix for #2414 - Remove [DefaultValue] support from ModelBinding
This part of the change removes default value support from ModelBinding.

Updated some unit tests to verify that it does nothing in that case.
Deleted a functional test as it was pure duplication of another
(supported) case where the property has a pre-initialized value.
2015-05-13 20:03:23 -07:00
Hao Kung 1ea1cc4338 AuthorizeFilter should always set default identity 2015-05-13 16:39:35 -07:00
Ryan Nowak 90805fa827 Pass InputFormatters in OBC
This removes the need to use IScopedInstance<ActionBindingContext> to get
access to the formatters.
2015-05-13 16:02:34 -07:00
Kiran Challa 4bed2e6f2b [Fixes #2545] RedirectToRouteResult doesn't use RouteName property when calculating destination URL 2015-05-13 12:35:25 -07:00
Kirthi Krishnamraju caa8ea44fb Fix #448: Support app-wide defaults for HTML helpers 2015-05-12 14:10:59 -07:00
Ryan Nowak 4939181075 Fix #2528 - Revert formatter behavior for [Required]
This change removes the support in the DCS formatter to issue an error
message when [Required] is used on a value type.
2015-05-12 11:17:31 -07:00
Pranav K 13a3c0b931 Moving System.Security.Cryptography.Hashing.Algorithms to dnxcore50 node
to unbreak failing MusicStore dnu deploy.
2015-05-12 11:15:26 -07:00
Ryan Nowak 39fe063aee Fix #2330 - Reimagine *FormatterContext
This change simplifies InputFormatterContext/OutputFormatterContext by
swapping ActionContext for HttpContext.

This change is important especially for InputFormatterContext as it
decouples ModelState from ActionContext - allowing us to fix a
related bug where the _wrong_ ModelState can be passed in for a
TryUpdateModel operation.
2015-05-12 11:05:56 -07:00
James Newton-King de630754bf SerializerSettings refactor
Add SerializerSettings to MvcOptions and pass those options to the JsonInputFormatter and JsonOutputFormatter.
Remove custom contract resolver.

PR feedback
Pass JsonSerializerSettings to JsonPatchInputFormatter

PR feedback
Make DI JsonOutputFormatter formatter use MvcOptions SerializerSettings

Fix JsonPatchInputFormatter using null ContractResolver

Fix tests
2015-05-11 16:43:17 -07:00
James Newton-King ab4cd5c4c4 Add JsonHelper for serializing JSON in views
- remove NotNull from JsonHelper Serialize
2015-05-11 16:01:08 -07:00
Kiran Challa 40794fcc33 Custom stream writer which avoids writing the BOM and does not flush or close the stream. 2015-05-11 13:27:05 -07:00
Ajay Bhargav Baaskaran d6012d4297 [Fixes #2506] Added overload to Controller.Json to accept JsonSerializerSettings 2015-05-11 12:36:45 -07:00
Pranav K 131096ff61 Adding relevant unit tests for MvcRazorCodeParser property name trimming 2015-05-11 12:20:49 -07:00
David Paquette ab4d2eec31 ImageTagHelper
An ImageTagHelper that supports cache busting by appending a file
version hash to the image src attribute
[Resolves #2249]

Code cleanup
2015-05-11 13:41:10 -05:00
Pranav K a591e53dc9 Removing unused TypeHelper method 2015-05-11 06:15:35 -07:00
Matthew Bonner 648f00c03d MINOR: Removed additional space from indentation of ReferenceAssemblies HashSet. 2015-05-09 22:00:46 +01:00
Pranav K 320507604a Removing superfluous types and methods from Common. 2015-05-09 08:04:28 -07:00
Doug Bunting 61b76fd99f Use `ClosedGenericMatcher.ExtractGenericInterface()` from Common repo
- added in aspnet/Common@aae8e6e

nits:
- reorder dependencies alphabetically
- avoid `GetGenericArguments()` extension method with `ExtractGenericInterface()` return value
 - use `GenericTypeArguments`
- usual trailing whitespace auto-removals
2015-05-08 20:23:06 -07:00
Ryan Nowak 8a476b56d8 Part 2 of fix for #2248 - Support 'override' of attribute routes on action
methods

This change applies the 'override' semantic to attribute routes on virtual
methods.

A method override can either inherit attribute routes from a base
definition, or can replace them. It's not possible to inherit routes and
also add to them.
2015-05-08 17:05:50 -07:00
Ryan Nowak 46db71cfce Part 1 of fix for #2248 - Ambiguity when inheriting attribute routes
The change here is to make an attribute route defined on a base class
inherited only if no other routes were defined 'closer' to the controller
class.

To put another way, attribute routes can either be inherited or
overridden, you can't inherit + add your own.
2015-05-08 17:05:45 -07:00
Ryan Nowak 2b4702728d Fix #1910 - Review and improve docs for 'Order' properties 2015-05-08 14:31:32 -07:00
Ryan Nowak 0f6b2331ce Fix #2378 - Fully expand models in ApiExplorer
This change dramatically simplifies the parameter discovery logic in
DefaultApiDescriptionProvider. Instead of surfacing POCO objects as
parameters, we now fully expand every model.

The rationale is that we want to show every key/value that can be set by
the user and not force consumers of ApiDescription to do that themselves.

Tests are cleaned up to match the new behavior.
2015-05-08 11:53:38 -07:00
Chris R bd03142dab React to Http namespace changes. 2015-05-07 15:19:10 -07:00
Troy Dai ea717729c1 React to common package name change 2015-05-07 09:39:08 -07:00
David Fowler 87776ae330 Sort dependencies 2015-05-06 10:25:14 -07:00
David Fowler 5cec601abe Fix MVC packages being broken on CoreCLR
- Mvc is currently broken on CoreCLR because it is
inheriting dependencies from Microsoft.AspNet.Mvc.Common but the resulting
dependency to Microsoft.AspNet.Mvc.Common is then erased at pack time.
This change moves the dependencies down and makes the shared package
only depend on System.Runtime.

#2507
2015-05-05 23:26:45 -07:00
Ajay Bhargav Baaskaran 0a7b2ac821 [Fixes #2491] RemoveRange handles attributes parameter safely 2015-05-05 14:14:23 -07:00
Kiran Challa 7e623258c0 Use strongly typed MediaTypeHeaderValue for content type in action results. 2015-05-04 14:06:58 -07:00
Ryan Nowak 38bd617778 CR feedback from 9fded74b15 2015-05-04 12:07:24 -07:00
Kiran Challa 284c899233 Register default services directly in AddMvc and remove MvcServices 2015-05-04 10:53:34 -07:00
BrennanConroy e79cd72f3e Update project.json 2015-05-01 15:59:04 -07:00
N. Taylor Mullen 64e726d2b2 Update LICENSE.txt and license header on files. 2015-05-01 13:55:25 -07:00
Troy Dai 66921670bf React to DNX package names change 2015-05-01 11:11:13 -07:00
Brennan 44bcd36256 React to interface renames 2015-04-30 09:46:13 -07:00
Brennan d304a9bf5c Diagnostics Package Rename Reaction 2015-04-29 16:42:26 -07:00
Chris R b455724859 Remove redundant Http.Core and Http.Interfaces dependencies. 2015-04-29 15:59:52 -07:00
Pranav K 8188f593ad Fix excplicit cast of HashSet<string> to IReadOnlyCollection<string> to
allow tests to succeed in machines with only 4.5.1.
2015-04-29 14:07:23 -07:00
Ajay Bhargav Baaskaran 89ebce0289 [Fixes #2336] Generate some input elements without value attribute 2015-04-29 13:47:17 -07:00
Kiran Challa 0a1918acac Cleanup logging in tag helpers 2015-04-29 09:41:51 -07:00
Henk Mollema f2fed5e940 Included default route name and template in docs
Added the route name and template being used in the
`BuilderExtensions.UseMvcWithDefaultRoute()` method.

Issue #1885
2015-04-29 09:21:53 +02:00
Troy Dai 97a3c47928 Revert "Temporarily remove compiling against non roslyn project references"
This reverts commit 088bcac028.
2015-04-28 15:22:33 -07:00
Kirthi Krishnamraju 30e54609cc Fix #1911 : Create a separate package for ApiExplorer 2015-04-28 13:13:20 -07:00
Ajay Bhargav Baaskaran 3ca018375a Issue #1885 - Updated startup code in few websites 2015-04-28 10:42:01 -07:00
Troy Dai bca294e6e8 React to ICompileModule change 2015-04-28 00:07:34 -07:00
Henk Mollema 53f3a91f01 Added UseMvcWithDefaultRoute extension to BuilderExtensions
Added `UseMvcWithDefaultRoute` extension method to `BuilderExtensions`,
which adds Mvc to the request pipeline with a default route to the
`Index` action on the `HomeController`.

#1885
2015-04-27 15:50:45 -07:00
Youngjune Hong 3ea7daabfe Added the default constructor to ViewContext 2015-04-27 15:30:18 -07:00
N. Taylor Mullen f152ea7004 React to aspnet/Razor#279 changes.
- Updated all tests and TagHelpers to utilize the new TagHelperOutput.Attributes and TagHelperContext.AllAttribute types.

aspnet/Razor#279
2015-04-27 14:30:30 -07:00
Doug Bunting 05ac641f9a PR comment on c162209
- place `[HtmlAttributeNotBound]` on its own line
 - don't use (wonderful) shortcut syntax
- @Eilon's comment https://github.com/aspnet/Mvc/pull/2452/files#r29162068
2015-04-27 13:32:19 -07:00
Kirthi Krishnamraju 3c9456e2a3 AntiForgery: Add documentation and update variable names for readability 2015-04-27 11:40:59 -07:00
Kirthi Krishnamraju 68026add28 JsonPatch:Changed ToLower to ToLowerInvariant 2015-04-27 10:14:11 -07:00
Doug Bunting c1622096b9 React to aspnet/Razor#182 fix
- use `[HtmlAttributeNotBound]` to make tag helper properties `public`
- properties remain invisible in Razor
2015-04-27 08:17:40 -07:00
Doug Bunting 838f672b10 Clean up .xproj files added with HttpAbstractions 2015-04-27 08:12:22 -07:00
Ryan Nowak 9fded74b15 Merging ModelBinding into Mvc.Core 2015-04-27 02:10:37 -07:00
Ryan Nowak 572e57e25c Create Mvc.Abstractions
Creates a new package 'Microsoft.AspNet.Mvc.Abstractions' which defines
APIs and contracts for core concepts and extensibility points in MVC.

Includes:
- ModelBinding
- Validation
- Model State
- Model Metadata
- Action Descriptors
- IActionResult
- Filters
- IActionConstraint
2015-04-27 00:49:14 -07:00
David Fowler 088bcac028 Temporarily remove compiling against non roslyn project references 2015-04-26 00:18:58 -07:00
Henk Mollema 955b45f995 Utilized `nameof()` for `ArgumentNullException`s
Utilized the use of nameof() operator for ArgumentNullExceptions.
2015-04-24 14:00:34 -07:00
Chris Ross 98614736a7 React to authentication API changes. 2015-04-24 10:53:50 -07:00
Henk Mollema 0bfebf7fac Use `string.IsNullOrEmpty()` instead of empty string check. 2015-04-24 15:45:22 +02:00
Doug Bunting 3fd4991959 Bind to readonly non-`null` collections
- part 1/2 of #2294
- handle readonly non-`null` collections in relevant binders
 - `CollectionModelBinder.CopyToModel()` and `MutableObjectModelBinder.AddToProperty()` methods
 - handle read-only controller properties in `DefaultControllerActionArgumentBinder`
 - do not copy into arrays e.g. add `CopyToModel()` override in `ArrayModelBinder`
- remove ability to set a private controller property
 - confirm `SetMethod.IsPublic` in `DefaultControllerActionArgumentBinder`
- avoid NREs in `GetModel()` overrides

Test handling of readonly collections
- previous tests barely touched this scenario
- also add more tests setting controller properties

nits:
- add missing `[NotNull]` attributes
- add missing doc comments
- consolidate a few `[Fact]`s into `[Theory]`s
- simplify some wrapping; shorten a few lines
- remove dead code in `DefaultControllerActionArgumentBinder` and `ControllerActionArgumentBinderTests`
2015-04-23 20:11:09 -07:00
Ajay Bhargav Baaskaran a80a333fea [Fixes #1489] Support for named route in form tag helper 2015-04-23 17:08:38 -07:00
Ajay Bhargav Baaskaran 5da8ba7769 [Fixes #2085] Using custom HtmlEncoder in unit tests 2015-04-23 13:16:27 -07:00
Chris Ross 017e44ae95 Handle FileProviders package changes. 2015-04-23 12:56:10 -07:00
Kiran Challa 687ab258a1 Logging for filters 2015-04-23 06:38:45 -07:00
Ajay Bhargav Baaskaran 1511ea34a8 [Fixes #662] Throw if controller cannot be activated 2015-04-22 16:15:48 -07:00
Harsh Gupta 86fcacea92 Fix for #2357 : We prevent assigining null values to non nullable controller properties. 2015-04-22 14:40:14 -07:00
Harsh Gupta 53ef8258bb The model state keys for body bound models which are bound at property will use the entire model name with this change for example
Consider

public class Person
{
    [FromBody]
    public Address Address { get; set; }
}

public class Address
{
   [Required]
   public string Street { get; set; }

   public int Zip { get; set; }
}

Request body { "Zip" : 12345 }
In this case the error key would be "prefix.Address.Street" (assuming there is a prefix because of additional metadata/positioning for/of the Person model).

public class Person
{
       [Required]
       public string Name { get; set; }
}

public void Action([FromBody]Person p)
{
}
Request body { }
In this case the prefix gets ignored and the error key is Name.
Please note this is so that we are compatible with MVC 5.0

public class Person
{
       [Required]
       public string Name { get; set; }
}

public void Action([FromBody][ModelBinder(Name = "prefix")] Person p)
{
}

public void Action2([FromBody][Bind(Name = "prefix")] Person p)
{
}
Request body { }
In both these cases (Action and Action2) the prefix gets ignored and the error key is Name.
This is a slight improvement from mvc, as in MVC the action parameter would be null.

The followup for this would be to fix #2416 -
This PR ignores the validation assuming that #2416 will address the issues and update the test.

NOTE: previous versions of mvc did not have property binding and hence there is no precedence in this case. For MVC and Web API it was possible to body bind an action parameter which used an empty prefix instead of a parameter name for adding errors to model state (In case of MVC if a custom prefix was provided, it failed binding from body i.e the parameter was null).
2015-04-22 14:02:08 -07:00
Kirthi Krishnamraju 3042a62ba9 Removed Test operation code and changed T to TModel 2015-04-22 13:44:20 -07:00
Kirthi Krishnamraju bf712263fc Fix for #2280 - Cannot do an "add" patch to IList<Anything>
Added unit tests
2015-04-22 13:44:14 -07:00
Kirthi Krishnamraju e48565dcd8 Adding errors in ModelState 2015-04-22 13:44:09 -07:00
Kirthi Krishnamraju 9f97d25e02 Moved exception messages to resource file and updated tests to validate exception messages 2015-04-22 13:44:04 -07:00
Ryan Nowak f3679f214e Fix #1712 - remove reflection from validation code in MutableObjectModelBinder
This change moves [BindingBehavior(...)] and friends into the model
metadata layer, and removes the reflection code from
MutableObjectModelBinder that was looking for them previously.
2015-04-22 12:10:45 -07:00
Kirthi Krishnamraju 9d2b1822d9 Fix for #819 : Attribute Routing: Resolve Name + Token Replacement 2015-04-22 11:47:23 -07:00
Henk Mollema 92554fa634 Utilize `nameof` operator 2015-04-22 10:57:50 -07:00
Chris Ross 7b7667e338 Fix DataProtection dependency. 2015-04-22 10:23:36 -07:00
Henk Mollema 323ec2fdc7 Throw exception with unknown attributeName
Throw a meaningful exception if the attribute to copy does not exists
in the attributes of the TagHelperContext rather than:
`System.InvalidOperationException : Sequence contains no matching
element`.

Added test too.
2015-04-21 14:49:14 -07:00
Kiran Challa 162c4709c1 Refactor attribute route 2015-04-21 11:02:05 -07:00
sornaks 064c01cf2b #2267 - Moving responsibility for setting ModelState.MaxAllowedErrors into a more appropriate location. 2015-04-20 14:31:04 -07:00
Ryan Nowak 2719111453 Add more details to ModelAttributes
This change adds more information to ModelAttributes, so that metadata
providers can look at the attributes on the property and type separately
if so desired
2015-04-17 17:35:20 -07:00
Ajay Bhargav Baaskaran a4fd51772f [Fixes #2276] Serialize only simple types to session in TempData 2015-04-17 14:30:47 -07:00
Pranav K fb451b51e5 Added SourceLocation to inherited chunks \ tag helpers
Updated CompilationResult to support compilation failures from multiple
files.

Fixes #2321
2015-04-17 11:23:38 -07:00
Ajay Bhargav Baaskaran f878ca5b15 [Fixes #1919] Added path info to RazorPage exceptions 2015-04-17 10:30:37 -07:00
Kiran Challa e7728dde3f Log view discovery 2015-04-17 04:23:45 -07:00
Pranav K 18efefd5cf * Use PropertyHelper.SetValue in DefaultControllerActionArgumentBinder
* Update DefaultModelMetadataProvider to use delegates exposed on
  PropertyHelper instance.

Fixes #2355
2015-04-16 16:38:13 -07:00
Chris Ross 6223aac9be Handle Http.Core rename. 2015-04-16 15:48:27 -07:00
Kiran Challa 879057b873 Addressing minor comment from feedback 2015-04-16 12:09:42 -07:00
Ryan Nowak f77493dffe Part 1 of #1712 - Remove reflection in MutableObjectModelBinder
This change introduces a new property to ModelMetadata called
IsBindingRequired, which specifies whether or not a model value must be
present on the wire during model binding.

[DataMember(IsRequired = true)] is currently the only thing that will set
this property.

Updated tests and documentation for clarity on the difference in meaning
between MM.IsRequired and MM.IsBindingRequired. Moved setting for
IsRequired to ValidationMetadata which is a better fit.

Also added functional tests for [BindingBehavior] and [DataMember] in
model binding because they were totally missing.
2015-04-16 12:07:33 -07:00
Kiran Challa c3f10f4a0f Logging for content-negotiation 2015-04-16 12:02:55 -07:00
Kiran Challa 7576116969 Removed test code related to logging and instead used Testing repo's logging helpers. 2015-04-16 11:19:24 -07:00
Kiran Challa 65bd8c448a Removed Logging related ILogValues types and cleaned up tests. 2015-04-16 11:19:20 -07:00
Kiran Challa 20daab2fb5 Removed direct dependency on Framework.Logging and instead used Framework.Logging.Interfaces.
Fixed breaking code which additionally cleans up start-up logging which we wanted to do.
2015-04-16 11:19:17 -07:00
Henk Mollema 9eb87d4676 Removed htmlAttributes null check in GenerateForm
The null check caused the form not to use the default url generation
behavior when html attributes were specified.
2015-04-16 16:29:27 +02:00
Harsh Gupta 7f68a47fde Fixing doc comments for c67236141b 2015-04-15 14:46:29 -07:00
Harsh Gupta c67236141b Fixes 2304:
The fix splits client validation and model validation into two separate hierarchies.
Introduced ClientModelValidatorProvider in MvcOptions, which can be iterated to produce IClientModelValidators.
As a result of this, HtmlGenerator code can be free of ActionBindingContext and directly consumes options.
This also means that we do not modify the client validations during resource filters.
2015-04-15 14:30:46 -07:00
N. Taylor Mullen eaa58bc913 Change inject directive to format correctly after newline during design time.
- Also modified existing tests to account for aspnet/Razor#332 which fixed models formatting after newline.
- Updated tests for inject to understand new formatting parsing.

aspnet/Razor#332
2015-04-15 12:18:45 -07:00
Ajay Bhargav Baaskaran 4951235eef [Fixes #2337] Added support for file types in input taghelper and
htmlhelper
2015-04-15 11:58:40 -07:00
Hao Kung bee20973c7 React to http challenge changes 2015-04-15 11:39:12 -07:00
Youngjune Hong 9daf6b48a1 Update ModelBinderAttribute not throw exceptions from BinderType property setter 2015-04-14 17:31:50 -07:00
N. Taylor Mullen 2c4c35e126 Add rendering logic for PreElement and PostElement on TagHelperOutput.
- Added unit tests to validate that the properties were rendered correctly.
- Modified functional tests to utilize PreElement and PostElement.

aspnet/Razor#341
2015-04-14 12:01:20 -07:00
Ryan Nowak d0e5118741 Delay Attribute Route initialization to the first request 2015-04-13 16:16:27 -07:00
Kiran Challa 24b930fa7c Clean up logging.
- Removing scopes as we want to limit the number of scopes being created.
- Added new log statements using the new log format string.
2015-04-13 15:59:38 -07:00
Harsh Gupta 58a5ad2279 Adding Outputformatter in resource filters. 2015-04-08 16:46:46 -07:00
Ajay Bhargav Baaskaran f60896bd90 [Fixes #2259] Use fast property setter in MutableObjectModelBinder 2015-04-08 16:44:30 -07:00
Victor Hurdugaci 5164d647c5 React to resource renames 2015-04-08 15:27:51 -07:00
sornaks b08a2154c1 #2142: Introducing enabled attribute for CacheTagHelper. 2015-04-08 13:27:03 -07:00
Pranav K 43e24b2aad Removing IInputFormatterSelector
Follow up work item to #2269
2015-04-08 07:35:48 -07:00
Pranav K f280353a56 Merge branch 'release' into dev 2015-04-08 07:18:56 -07:00
Pranav K 8c8992fa9c Reacting to ICompilationMessage line indexes changing to be 1-based. 2015-04-07 21:38:46 -07:00
Doug Bunting cef32d4098 React to aspnet/razor#320 fix
- Razor PR aspnet/Razor#350
2015-04-07 17:50:58 -07:00
Doug Bunting 73e8fc10e4 Automatically use `type="number"` for expressions of more types
- #2261
- include `short`, `ushort`, `float`, `double`

- correct typo in `<input/>` tag helper; ignored calculated format
 - only one test for `<input/>`'s calculated format 😦
- fill some `Editor*()` and `<input/>` tag helper test gaps

nit: clean up some trailing whitespace
2015-04-07 17:19:08 -07:00
N. Taylor Mullen df13245be3 Merge branch 'release' into dev 2015-04-07 14:47:21 -07:00
N. Taylor Mullen a8d5bb934d Add serviceable attribute to projects.
aspnet/DNX#1600
2015-04-07 14:47:02 -07:00
Pranav K f9d53e341c * Simplify MvcOptions
* Remove facades for accessing Options<T> and pass options to the invoker

Fixes #2266
Fixes #2269
2015-04-07 14:45:53 -07:00
sornaks 7e2420b93c Reacting to AppendFormat changes in Razor. 2015-04-07 08:40:05 -07:00
Harsh Gupta 0c0fa10ed0 Fixes 2307. MutableObjectBinder now relies on ModelMetadata to decide if a type is a complex type.
This avoids reflection at multiple places and allows caching.
2015-04-06 13:17:39 -07:00
Kiran Challa 9330789fe3 Reacting to ILogger api changes 2015-04-04 02:52:43 -07:00
Doug Bunting f3ec6f33ae Merge remote-tracking branch 'origin/release' into dev 2015-04-03 12:08:11 -07:00
Doug Bunting 393aa54545 Update .xproj files for Microsoft.Web.AspNet.* -> Microsoft.DNX.* rename 2015-04-02 13:49:27 -07:00
Pranav K a4f3b86865 Prevent RazorErrorExtensions.ToDiagnostics from throwing when it
encounters SourceLocation.Undefined \ negative error lengths
2015-04-01 13:51:29 -07:00
Ryan Nowak c6a1af97b0 Use Hosting.Interfaces 2015-04-01 12:16:09 -07:00
Ryan Nowak 6caa2871aa Use DataProtection.Interfaces 2015-04-01 11:47:24 -07:00
Ryan Nowak acb657d951 [Perf] Fully cache model metadata
This change caches the actual model metadata instances. Some profiling
showed we didn't go far enough, we were allocating a lot of ModelMetadata
+ ModelPropertyCollection instances.
2015-04-01 11:44:17 -07:00
sornaks f640744f85 Merge branch 'release' into dev 2015-03-30 16:39:41 -07:00
sornaks 6e9533ce9c #2295 - Disposing the read stream after computing file hash. 2015-03-30 16:23:55 -07:00
Pranav K 9dc8ecac8a Cleanup: Moving files from src/Microsoft.AspNet.Mvc.Razor/Razor/PreCompileViews ->
src/Microsoft.AspNet.Mvc.Razor/Precompilation
2015-03-30 14:51:11 -07:00
Pranav K d388aa58c8 Remove caching from QueryStringValueProviderFactory
Fixes #2258
2015-03-30 12:53:03 -07:00
Pranav K e3ea602775 Renaming incorrectly named file name.
Fixes #2274
2015-03-30 12:45:39 -07:00
Doug Bunting 36bd387686 Merge remote-tracking branch 'origin/release' into dev 2015-03-30 11:44:35 -07:00
Doug Bunting 5882cdb03f MVC portion of aspnet/Razor#335
- set correct `MarkAsHtmlEncodedMethodName` value in `MvcRazorHost`
- handle `HtmlString` values in `TagHelperOutput.Attributes` in `RazorPage`
 - special-case double-quotes in `HtmlString` values
 - add `static WriteTo()` method for use in tag helpers
- handle non-`string` `output.Attributes` values in tag helpers
- make `TagHelperContentWrapperTextWriter` a `public` class
- provide a `TagHelperContent.Append(object, ...)` extension method
- add `LinkTagHelper.Href` and `ScriptTagHelper.Src` properties
 - avoid Razor HTML-encoding these attribute values before their use
- add `JavaScriptEncoder` properties in `LinkTagHelper` and `ScriptTagHelper`
 - allow encoding testing without unit testing the default encoder
- handle MVC and Razor changes for this bug in existing tests
- add functional tests of encodings
- add test encoders to TestCommon project

nits:
- correct `InputTagHelper` to pass `type=""` through unchanged
- set correct `TagHelperContentTypeName` value in `MvcRazorHost`
- remove unnecessary `FormTagHelper.Method` and `OptionTagHelper.Selected` properties
- remove complex ternaries and `ShouldAddFileVersion()` methods
- add a few debug assertions
- fix some odd wrapping
- remove or `#if`-out unused `using`s
- remove trailing whitespace
2015-03-30 10:54:00 -07:00
Pranav K 60381c415e Unrendered sections does not throw when redefined and rendered in nested
layout.

Fixes #2252
2015-03-30 09:33:09 -07:00
Edward Kim fefad346ba fix newline 2015-03-29 13:02:51 -07:00
anurse de88b92f87 react to runtime compilation refactoring 2015-03-26 22:18:39 -07:00
Victor Hurdugaci 38eff2ddbc Change casing of the "compiler" folder 2015-03-26 16:39:35 -07:00
N. Taylor Mullen b0b0836395 Merge branch 'release' into dev 2015-03-26 15:02:53 -07:00
Ryan Nowak df1bd1f36c ModelMetadataIdentity cleanup
Adding Equals and GetHashCode implementations - the lack of these results
in a lot of boxing.

Removing dead code, not possible to create a model metadata for a
parameter anymore.
2015-03-26 13:14:51 -07:00
N. Taylor Mullen 9402f1485c Normalize paths for MvcRazorHost DecorateCodeBuilder's ChunkInheritanceUtility call.
- This solves tooling trying to resolve ChunkInheritanceUtility bits for chunks: Aka can't inherit `@using`, `@inject` etc. from _GlobalImport.cshtml
- Added test to validate paths are normalized for DecorateCodeBuilder.

#2271
2015-03-26 12:27:56 -07:00
Pranav K 939fb2ba53 Stop passing around IServiceProvider in RazorPreCompiler
Fixes #2204
2015-03-25 09:54:41 -07:00
Doug Bunting fc1017fba8 Quick fixes: Clean up test code
- remove useless `configuration` variables and `Configuration` instances
- remove "Review" code comment
 - unintentionally included in commit 4b5dd19
- reduce repeated code in `TestHelper` for functional tests
 - `CreateServer()` methods had duplicate code, an ambiguous match, and an odd order
- rename `GetTestConfiguration()` to `UseCultureReplacer()` in functional tests
2015-03-24 13:42:27 -07:00
Doug Bunting 9ac6ebd2b2 Refactor `IHtmlGenerator.GenerateSelect()` and address #2240
- add `IHtmlGenerator.GetCurrentValues()` method
 - bring together bits of `GenerateSelect()` and `UpdateSelectListItemsWithDefaultValue()`
 - get rid of ugly `out` parameter
 - also allows `<option/>` tag helpers to run before `<select/>` helper generation
- match `null` values and `SelectListItem`s with empty values
- match `enum` names correctly
- add doc comments for `IHtmlGenerator.GenerateSelect()` methods
2015-03-24 12:37:19 -07:00
sornaks 0e783ace58 Issue #2141 - Script & Link tag helpers should support generating cache-busting file version hash in URL. 2015-03-24 11:47:29 -07:00
KevinDockx 0462dd6be3 [JsonPatch]Rename SimpleObjectAdapter; Include statuscode in JsonPatchException 2015-03-24 11:24:53 -07:00
sornaks 54c1fed254 Issue #1736 - Razor view searches in case-sensitive filesystems. 2015-03-23 18:02:35 -07:00
Ajay Bhargav Baaskaran 823e9f1516 [Fixes #2192] Remove enumerable types from excluded type in validation 2015-03-23 16:06:29 -07:00
Ryan Nowak 784021cf85 Fix ModelMetadata.IsRequired
The DataAnnotationsMetadataProvider was setting the bool? IsRequired, all of the
time instead of only setting it to true when we found a RequiredAttribute.
So we never actually executed the fallback logic here. Found
this while working on removing some reflection code from the validator,
and wanted to split it out because it's simple.
2015-03-23 15:32:43 -07:00
Kirthi Krishnamraju a5da5b3acd Removed reflection code; used JsonContract instead and added new JsonPatchInputFormatter 2015-03-23 14:46:54 -07:00
Kevin Dockx f1e1d8f4df Initial Json Patch check-in 2015-03-23 14:46:49 -07:00
Harsh Gupta 5818c0b5b7 Fixes #583 Generating a unique cookie name for an application. 2015-03-23 14:05:05 -07:00
ianhong c1eea5b3fa React to Should GetVirtualPath return PathString in Routing 2015-03-22 19:44:45 -07:00
N. Taylor Mullen 9ac346529c Add test to validate tooling path normalization.
- Tooling passes in rooted paths when asking for a RazorParser for a file. This was problematic when resolving inherited code trees and ultimately this commit tests that.

#2213
2015-03-22 13:56:30 -07:00
Doug Bunting 570b1e583a Add `Html.GetEnumSelectList()` helpers
- #438 part 2/2

nit: test `[Display]` that does not set `Name` in `DataAnnotationsMetadataProviderTest`
2015-03-22 12:40:44 -07:00
Doug Bunting 7dd3afe3d1 Add `enum`-related details to `ModelMetadata`
- #438 part 1/2 and #2027 part 1/3

slight oddity in the XML docs
- unfortunately Roslyn seems to ignore `TypeInfo` being a subclass of `Type`

nit: use correct `warningsAsErrors` datatype in test project.json
2015-03-21 17:38:40 -07:00
Ajay Bhargav Baaskaran c62974d39b [Fixes #2179] Validation fix for supporting nested sections in layouts 2015-03-21 17:18:35 -07:00
Harsh Gupta adeb1ba194 Adding support for model binding specifically marked controller properties. 2015-03-20 17:37:09 -07:00
damianedwards c082d4aa49 Fix Razor tag helpers pre-compilation bug:
- #2227
2015-03-20 16:35:41 -07:00
Ajay Bhargav Baaskaran fd5e07dd03 TagHelpers attribute targeting - part 3 2015-03-20 16:21:38 -07:00
Ryan Nowak f5e7a69693 Updates to the extensibility for validator providers
This change removes reflection from validator providers, and instead
relies on cached metadata in in the modelmetadata.

In general this means that our MVPs don't need to cache anything, they
just look at the metadata and create what they need.

In the case of data-annotations, we update the model details provider to
add validation attributes to the modelmetadata. This would allow someone
to replace the DataAnnotationsValidatorProvider, but still use the
metadata in these attributes.

The change to the IModelValidatorProvider api (to use a context) is
intended to minimize allocations. Currently each validator provider needs
to return a list so you end up with N+1 lists (N validators + a final list
to compine them all). This change will let us just create the final list
(and a small context object). This is a very very high traffic API so it
seemed worth doing.

There's also some general massaging of namespaces and file locations.
2015-03-20 15:19:25 -07:00
N. Taylor Mullen 1ba4700339 Update default LinkTagHelper logger to log for a LinkTagHelper instead of ScriptTagHelper. 2015-03-20 14:31:43 -07:00
Ryan Nowak 2b82ee0255 Refactor of ViewComponent extensibility
Adds ViewComponentDescriptor and caching (provider, collection,
collectionprovider).

Removes IViewComponentInvokerProvider, simplifies
IViewComponentInvokerFactory.
2015-03-20 13:39:54 -07:00
Doug Bunting 533474d07c Bind POCO model correctly; fallback to empty prefix despite exact name match
- #1865
- change `MutableObjectModelBinder` to ignore exact match in value providers
 - had an incorrect assumption: don't want exact model name to match since
   this binder supports only complex objects
 - also ignored `BinderModelName`, value provider filtering, et cetera
- reduces over-binding e.g. `[Required]` validation within missing properties

also add more tests of #2129 scenarios
2015-03-20 13:18:42 -07:00
Doug Bunting 94e326f953 `CompositeModelBinder.TryBind()` should return `null` more often
- #2129
- do not propagate results with `!IsModelSet`, allowing empty prefix fallback
- adjust `ComplexModelDtoModelBinder` to at least fake-bind all properties
 - default values not consistently picked up otherwise

nit: correct 2 test names in `KeyValuePairModelBinderTest`
2015-03-20 13:18:13 -07:00
Doug Bunting 64c8a6fa40 Clean up `ModelBindingResult` constructor calls and related comments
- use named parameters more often
 - add more comments about returned `ModelBindingResult`
 - clean up `ModelBindingResult` doc comments
 - cleanup `using`s

Nits:
- cleanup trailing whitespace
- change `retVal` -> `result` in `KeyValuePairModelBinderTest`
2015-03-20 13:02:23 -07:00
Doug Bunting 103538b889 Fix NRE in `MutableObjectModelBinder` 2015-03-20 12:17:47 -07:00
ianhong 1c6800beab List of assembly names in DefaultAssemblyProvider needs to be kept up to date 2015-03-20 11:38:43 -07:00
Ajay Bhargav Baaskaran e2058905ec TagHelpers attribute targeting - part 2 2015-03-20 11:26:21 -07:00
Ajay Bhargav Baaskaran bfdeda797d TagHelpers attribute targeting - part 1 2015-03-20 11:15:40 -07:00
Kirthi Krishnamraju 2b246e7acc Fix for #1694 issue : Removed prefix for ModelState keys for FromBody parameters 2015-03-20 10:41:06 -07:00
ianhong 27bdec40a6 React to #154 (Routing - adding data token to GetVirtualPath) 2015-03-19 21:51:14 -07:00
N. Taylor Mullen 0f1292abf6 Transition root paths => relative for tooling.
#2213
2015-03-19 17:54:33 -07:00
Kiran Challa 9a6f8b392d [Fixes #852] XmlDictionaryReader.CreateTextReader overload which supports Encoding is missing 2015-03-19 17:33:20 -07:00
Harsh Gupta ac908d405e Removing ModelMetadataProvider.GetModelMetadataForParameters 2015-03-19 16:42:54 -07:00
Ajay Bhargav Baaskaran 9c1e2f54a5 [Fixes #2157] Added additional functional tests for TempData 2015-03-19 15:55:23 -07:00
Hao Kung 4b5dd199ca React to hosting changes 2015-03-19 11:07:25 -07:00
Harsh Gupta 015edefa96 Cors Support in MVC. 2015-03-18 19:37:00 -07:00
Kiran Challa ee4ffea294 [Fixes #2190] Remove GetSupportedContentTypes method from IOutputFormatter and move to a separate metadata interface 2015-03-18 16:13:14 -07:00
N. Taylor Mullen 52c1c20967 React to HtmlElementName rename to TargetElement.
aspnet/Razor#311
2015-03-17 22:03:11 -07:00
Ajay Bhargav Baaskaran fc9e1caf43 [Fixes #1331] Register object for dispose in ObjectResult and
FileStreamResult
2015-03-17 17:04:05 -07:00
sornaks d2bdd4f1d4 Removing 'Options' from ConfigureMvcOptions and ConfigureRazorViewEngineOptions. 2015-03-17 13:35:26 -07:00
sornaks c1338a0542 Reacting to Razor changes for removing Generate*() method. 2015-03-17 13:12:38 -07:00
Kiran Challa 489fc52df8 [Fixes #2108] StringOutputFormatter fails when HttpNotAcceptableOutputFormatter is used 2015-03-17 11:04:46 -07:00
ianhong ee49ab727f RazorPage.User should be ClaimsPrincipal 2015-03-17 10:41:22 -07:00
N. Taylor Mullen f49d52b5fc Add @tagHelperPrefix inheritance support.
- Updated some naming bits that were outdated (referring to ViewStart).
- Added a TagHelperDirective merging mechanic to ensure user file descriptors and inherited descriptors come together correctly.

#2110
2015-03-16 17:30:05 -07:00
Hao Kung f05520602f React to Authenticate(schemes) being removed 2015-03-16 16:57:16 -07:00
Ryan Nowak e16d263cd5 Reduce use of TypeActivation for ModelBinders
These model binders don't have any per-request state so there is no need
for them to be type activated. In one case the model binder actually does
its own caching which is being defeated by the fact that we register it as
type activated.

More changes to come in this area.
2015-03-16 15:10:32 -07:00
Praburaj b485b60014 Updating the version of System.Runtime.Serialization.Primitives 2015-03-16 14:02:28 -07:00
Kiran Challa 3d247ec028 [Fixes #2086] FilePathResult WriteFileAsync uses SendFile feature incorrectly 2015-03-16 13:05:12 -07:00
Kiran Challa f06007d428 [Fixes #2156] Remove IConfiguration from AddMvc 2015-03-14 00:02:53 -07:00
Kiran Challa 9a44e3e08b [Fixes #2095] Mark IControllerFactory methods in DefaultControllerFactory as virtual 2015-03-13 12:50:29 -07:00
damianedwards 7d1c1ed8eb Enable Tag Helper initializers:
- Any Action<ITagHelper, ViewContext> can be registered in DI to allow setting of tag helper properties after any [Activate] properties are set but before their bound from the source document and the tag helper is executed
- Removed previous tag helper options as initializers is the way to do this now
- #1689
- #2162
2015-03-13 12:31:02 -07:00
Praburaj 2b92f7772d React to Caching package rename
dependent on https://github.com/aspnet/Caching/pull/49/files
2015-03-11 17:24:09 -07:00
Hao Kung f3a9ce1ec1 Welcome home ScopedInstance 2015-03-11 15:03:29 -07:00
N. Taylor Mullen c1a026cbf7 Update .kproj => .xproj. 2015-03-11 14:01:43 -07:00
Kirthi Krishnamraju 7b18d1d3f1 Clear ModelState errors of model before TryValidateModel or TryUpdateModel 2015-03-11 10:14:28 -07:00
Doug Bunting e9f56055eb Need `[NotNull]` for all `TextWriter parameters in `RazorPage`
- #2102
- `PositionTagged<string>` and `RenderAsyncDelegate` parameters too
- and a few `string` parameters dereferenced or used as `Dictionary` keys
2015-03-10 23:26:41 -07:00
Doug Bunting cc7b319cb7 Remove use of `ServiceDescriber` in MVC and cleanup related hacks
- see issues aspnet/DependencyInjection#193 and #1612
- use `TryAdd()` in `MvcServices` for the `IAssemblyProvider`

Move `ApplicationBasePath` handling into `RazorPreCompileModule`
- restores view precompilation in functional tests of sample sites
- if we need this, others will as well
- override `IApplicationEnvironment` but get folder from `ProjectContext`
 - also remove remaining `IServiceProvider` implementations in this code

test fixes:
- simplify `IApplicationEnvironment` override
- move override logic into `TestHelper.CreateServer()` methods
- remove `LoggerFactory` setup
 - does not seem to require special-casing
- remove unused `ITestConfigurationProvider` / `TestConfigurationProvider`
- remove `TestAssemblyProvider` classes
 - no longer required
- remove `ReplaceCallContextServiceLocationService` test helper
 - change MVC sample to fully-qualify config.json path
  - avoids `ReplaceCallContextServiceLocationService` need in `MvcSampleTests`
 - no longer required for other tests

nit: remove unused `_serviceProvider` and constructor overload in `RazorPreCompiler`
2015-03-10 22:25:42 -07:00
Ajay Bhargav Baaskaran db728cd386 Introducing TempData
- Issue #455
 - Updated MVC sample
 - Added relevant tests
2015-03-10 12:04:05 -07:00
Doug Bunting a4e01bfe35 Correct setup of three tests added in prior commit
- compiler given `ApplicationName`, not `ApplicationBasePath`
- @pranavkm wrote the tests prior to 64ddbe0160

nit: rewrap long line introduced in prior commit
2015-03-10 09:28:17 -07:00
Pranav K 717c2bfd39 * Redesign CompilationResult so that it does not throw when CompiledType is
accessed.
* Update to use ICompilationException interface from
  Microsoft.Framework.Runtime
* Update to use RoslynCompilationException

Fixes #955
2015-03-09 14:39:10 -07:00