Commit Graph

1274 Commits

Author SHA1 Message Date
Doug Bunting 1a62f104b4 Add functional test of `[Remote]`
- #439 (3 of 3)
- extended the Validation web site to include use of `[Remote]`
- also confirm operation of the validation actions (which all reject their input)
2015-01-30 12:33:00 -08:00
Doug Bunting 80b004678d Get `[Remote]` and supporting classes building
- #439 (2 of 3)
- correct namespaces
- correct `Resources` class and member names; add new resources
- add `RequestServices` property to `ClientModelValidationContext`
- adjust to modern `IUrlHelper` API
- add `IClientModelValidator` support in `DataAnnotationsModelValidator`
- move previously-unused `StringSplit()` to `RemoteAttribute` and rename
- rewrite `RemoteAttributeTest`
 - improve test method names

Reduce number of `[Remote]` constructor overloads
- remove `AreaReference` enum and related `[Remote]` constructor overload
 - use `null` or empty `string` as explicit reference to the root area
- generally reduce parameter validation; match `UrlHelper`

Cleanup
- correct Engineering Guidelines violations
 - especially: add doc comments
- correct spelling error in `_additonalFieldsSplit`

nits:
- minimize `null` checks in `AdditionalFields`
- make `GetClientValidationRules` `virtual`; some subclasses use `new` today
- add tests of `DataAnnotationsModelValidator.GetClientValidationRules()`
- remove `builder.ToString()` calls since it appears
  https://roslyn.codeplex.com/workitem/246 has been resolved or Moq has
  worked around that issue.
2015-01-30 12:26:48 -08:00
Doug Bunting 1af1583302 Copy `[Remote]` and supporting classes from MVC 5.2
- #439 (1 of 3)
2015-01-30 10:05:53 -08:00
Anthony Sneed 1118315a9d [Resolves #1887] XmlDataContractSerializer Input and Output Formatter Tests Cleanup. 2015-01-30 10:02:33 +01:00
Wei Wang 58e3a6068e Merge remote-tracking branch 'origin/release' into dev 2015-01-29 16:31:26 -08:00
Pranav K a452205e60 Moving Microsoft.AspNet.Mvc.Xml to src dir 2015-01-29 10:28:40 -08:00
Pranav K fde1b13b4a Updating Mvc.NoFun.sln 2015-01-29 10:26:38 -08:00
Doug Bunting 8779cafbab Use `[Display(Order=x)]` to sort validation messages and properties
- #964
- compute `ModelMetadata.Order` based on `[Display]` attribute
 - property affects e.g. `@Html.DisplayFor()` generation for complex objects
 - also affects order of messages in validation summaries
- test new scenarios involving `ModelMetadata.Order`
 - per-property `ModelMetadata` and related tests
 - validation and `HtmlHelper` tests
 - add `HtmlHelperValidationSummaryTest` (which touches on #453)
- update ModelBinding functional test to show use of `[Display(Order = x)]`

nits:
- move more `NullDisplayText` bits into proper slots (just above `Order`)
 - add doc comments for `ComputeNullDisplayText()`
- add more assertions in tests using `ModelStateDictionary.HasReachedMaxErrors`
- remove some trailing whitespace
- avoid `Assert.True()` & `Assert.False()`; split some assertions up
- `""` -> `string.Empty` in affected test classes
- rename "DefaultEditorTemplatesTest~~s~~" class and file to follow guidelines
- rename "ModelBindingTest~~s~~" class and file to follow guidelines

FYI #1888 covers a predictable (or even just stable) order in the UI
2015-01-29 09:31:05 -08:00
Anthony Sneed c6de763a6c [Resolves #1744] Cleanup Xml Serializer & DataContractSerializer input and output formatters. 2015-01-29 07:04:09 -08:00
Pranav K bccef90a2c Fixing Nuget.config 2015-01-29 06:28:40 -08:00
Youngjune Hong 70efc5ae0a Creating UrlUtility for IsLocalUrl, and cleaning up UrlHelper 2015-01-29 05:51:46 -08:00
Wei Wang e81f4a8e22 Change SKIP_DOTNET_INSTALL to SKIP_KRE_INSTALL 2015-01-28 18:24:23 -08:00
Wei Wang ae7d7daa99 Update build.cmd and build.sh to use kvm 2015-01-28 18:24:07 -08:00
Wei Wang 58b5445215 Merge branch 'release' of github.com:aspnet/Mvc into release 2015-01-28 18:23:42 -08:00
Ryan Nowak 42df4cf2ed Fix for #1538 and #1891
Changes here are all focused around MaxModelErrors on
ModelStateDictionary.

MaxAllowedErrors now defaults to 200 (same as options). This means that
constructing a new ModelStateDictionary with the default constructor will
use this default. There's a new constructor for creating a
MaxAllowedErrors with a non-default value.

The ControllerActionArgumentBinder is now responsible for setting the
value from options onto ActionContext.ModelState. This results in better
layering and guarantees the option is respected if someone uses
extensibility to call model binding.

ModelStateDictionary.CanAddErrors is renamed to MaxErrorsReached. We
wanted to change the behavior of this property, but realized that it's
very useful inside the model validation code, so opted to renamed.

There's also a bunch of doc cleanup inside ModelStateDictionary to
simplify things and improve clarity.
2015-01-28 16:53:28 -08:00
Anthony Sneed 4821108307 Add SerializerSettings property to Xml DataContractSerializer input and output formatters. 2015-01-28 23:50:16 +01:00
NTaylorMullen 3e3dd0215d React to aspnet/Razor#94.
- Implemented ITagHelperinterface for TagCloudViewComponentTagHelper in the TagHelperSample.
2015-01-27 20:20:14 -08:00
Harsh Gupta 2d15f083da Porting few tests for JsonOutputFormatter 2015-01-27 16:48:54 -08:00
Kirthi Krishnamraju f1c62ef302 Fix for #1837 - Determine model type at runtime for TryUpdateModel and added a test 2015-01-27 16:36:47 -08:00
Kirthi Krishnamraju cbed666cba Added functionaltests for ModelMetadataType attribute and moved TryValidateModel tests actions to ValidationWebSite 2015-01-27 15:56:49 -08:00
Ryan Nowak 08a578d01f Issue #1525 - Enhancements to ActionContext
- Adding a new constructor that takes ModelState.
 - Removing an extra constructor that's not needed
 - docs
 - test cleanup
2015-01-27 14:35:31 -08:00
Ajay Bhargav Baaskaran 17aa21dc25 Added StatusCode property to OutputFormatterContext
- Fixes issue #1809
 - Added relevant tests
2015-01-26 17:32:04 -08:00
Ajay Bhargav Baaskaran 8e85d53c88 Provided a way to add data to ActionDescriptor from ApplicationModel.
- Added Properties to Action, Controller and Application model
 - Added relevant tests
2015-01-26 15:20:02 -08:00
Ryan Nowak 02f656667f Cleanup of some exception code
Decision is **carefully** vet scenarios where we need to throw an
exception with extra data, and create custom exceptions for those cases.
2015-01-26 14:54:31 -08:00
Ryan Nowak ee419e2442 Add ApiExplorer details to ApplicationModel
This change allows you to set global defaults for ApiExplorer on the
ApplicationModel. Additionally, we're more lenient about configuring
ApiExplorer = on with conventional routing. If you turn on ApiExplorer at
the application level, we'll just skip over all conventionally routed
controllers instead of throwing.
2015-01-26 14:47:11 -08:00
Ryan Nowak 8399dc5f4e Add a custom collection type for ModelMetadata.Properties
This is a cleanup PR to improve the common usage of
ModelMetadata.Properties.

We found placed in code where both .Count and the ability to index by
property name would be useful. I was able to cascade this and simplify the
ModelBindingContext as well.
2015-01-26 14:36:40 -08:00
Pranav K 8a9dc991ce Reacting to System.Xml.XmlSerializer version change 2015-01-24 21:40:07 -08:00
Pranav K 36413b4d81 Removing XmlSerializer from TagHelpersSample.Web 2015-01-23 17:26:48 -08:00
Pranav K f93d0d82c3 Merge branch 'release' into dev 2015-01-23 17:12:16 -08:00
Pranav K 071c697318 Modify BuilderExtensions.UseMvc to not add any routes by default
Fixes #1879
2015-01-23 16:51:38 -08:00
N. Taylor Mullen 074eae6059 Fixed Microsoft.AspNet.Mvc.Common unneeded assemblyinfo. 2015-01-23 16:29:31 -08:00
Wei Wang af3044a3d1 Merge branch 'release' into dev 2015-01-23 13:21:30 -08:00
Wei Wang 5407ff3bd6 React to kpm renaming 2015-01-22 17:35:46 -08:00
Pranav K 4d77f670f6 Merge branch 'release' into dev 2015-01-22 16:47:54 -08:00
Pranav K 6c21b40894 EntryLinkHelpers.ContentLink should be available to use for user code
inside of a cache tag helper's body.

Fixes: #1867
2015-01-22 16:37:11 -08:00
Kiran Challa 5c2dc5db11 [Fixes#1792]Separate XML serializers to Microsoft.AspNet.Mvc.Xml 2015-01-22 15:09:20 -08:00
Doug Bunting bf00f478e5 Add another view to MvcTagHelpersWebSite using HTML helpers
- with some `<text>` hacks, generated HTML is almost identical to tag helper version
 - attribute order (HTML helpers consistently order alphabetically) is primary difference
- bit more testing, therefore related to #453

nits:
- remove some trailing whitespace
- clean up style in `MvcTagHelperTest[s]` and `MvcTagHelper_HomeController`
 - e.g. more init syntax, fewer duplicate variables
- correct "MvcTagHelperTest~~s~~" file / class name
- remove unused `Order.OrderNumber` property in MvcTagHelpersWebSite project
- correct one spelling mistake
2015-01-22 14:21:25 -08:00
Doug Bunting df0d556fcc Follow-up on 12565daf88 PR comment
- remove `explicitValue` variables from two `DefaultHtmlGenerator` methods

This follows up a [code review comment](https://github.com/aspnet/Mvc/pull/1834/files#r23120381)
related to `DefaultHtmlGenerator.GenerateCheckBox()`.  Same issue appears in
`DefaultHtmlGenerator.GenerateRadioButton()`.

@pranavkm -
> Also a different variable name? There's a parameter isExplicitValue that
> follows which always has a false value. Reusing this name seems messy.

My response to that comment should not be repeated.  @pranavkm was correct
that the only issue here is naming.  `explicitValue` was too easily
confused with the `isExplicitValue` argument used a few lines later.
They had separate purposes: `explicitValue` related to the "checked"
attribute while `isExplicitValue` relates to the "value" attribute.
2015-01-22 14:17:00 -08:00
N. Taylor Mullen baa70d284d Merge branch 'release' into dev 2015-01-22 14:02:50 -08:00
Ryan Nowak 7fbe0ce307 Merge branch 'release' into dev 2015-01-22 14:02:17 -08:00
N. Taylor Mullen 14bd7dcd5e Handle trailing semicolon after @inject.
- Made @inject handle trailing semicolons identical to @using; essentially ignores it.
- Added parser, runtime/designtime codegen and functional tests.
- Added Microsoft.AspNet.Mvc.Common.Test.
- Transitioned pre-existing Microsoft.AspNet.Mvc.Common tests to the new test project.
- Updated transitioned tests to also work in CoreCLR (except ones with moq).

#1857
2015-01-22 14:01:10 -08:00
Ryan Nowak 09928a2818 Adds parameter information to ApiExplorer
This change makes ApiDescription and ApiParameterDescription aware of all
of the new features we built into model binding for enhanced DTO support
(uber-binding).

The main change is that instead of sticking just to the declared
parameters on the action itself, we now traverse model metadata and break
the parameters down based on their logical data source.

This means that a model like the below will yield 3 parameters:

public class ProductChangeCommandDTO
{
    public int Id { get; set; }

    [FromBody]
    public ProductDetails Changes { get; set; }

    [FromQuery]
    public string AdminComments { get; set; }

    [FromServices]
    public IProductRepository Repository { get; set; }
}

The 'Repository' will be hidden, as it's not related to user input.

Additionally, we treat different sources differently. In the
above example, 'Changes' is from the body and will be treated as a
leaf-node.

However if you use nested DTOs that are bound from the query string (using
[FromQuery]) or similar, we'll recursively explore to find as much
structure as possible.

This information is combined with data from the route template to give a
much more complete picture than we ever could in the past for parameters,
especially when DTO/Command pattern is used.
2015-01-22 13:30:41 -08:00
Aligned 7793034b91 Change ASP.NET vNext to ASP.Net 5 in the Readme.md 2015-01-22 11:00:05 -08:00
damianedwards 759fbbd661 Added the EnvironmentTagHelper:
- #1553
2015-01-22 10:17:25 -08:00
Doug Bunting 54f88ab190 [cleanup] Update .gitignore and reset .kproj files
- add a couple more exclusions to .gitignore (recent VS additions)
- remove `<ProjectExtensions/>` elements
- update files that don't have the correct output directories
- remove dangling PrecompilationWebSite.kproj file
2015-01-21 22:03:23 -08:00
Suhas Joshi 5c8e1f7266 Merge branch 'release' into dev 2015-01-21 15:51:54 -08:00
Suhas Joshi d10ad558e5 Updating to release NuGet.config 2015-01-21 15:51:39 -08:00
Wei Wang edb520cb94 Rename SKIP_KRE_INSTALL to SKIP_DOTNET_INSTALL 2015-01-20 18:30:04 -08:00
Suhas Joshi 653f8c8b57 Updating NuGet.config 2015-01-20 17:25:00 -08:00
Kiran Challa 0e9091f0eb [Fixes #1841] Change XML DCS and XmlSerializer output formatters to not derive from the base XmlOutputFormatter 2015-01-20 17:22:04 -08:00