Commit Graph

492 Commits

Author SHA1 Message Date
Kiran Challa ef2c127459 Show route name 2018-07-31 14:08:24 -07:00
Kiran Challa f62877b9db Show default values in CompositeEndpointDataSource's debugger display string 2018-07-31 12:39:37 -07:00
Ryan Nowak f8b3b73ca7 Remove EndpointConstraints
Adds IEndpointSelectorPolicy so that MVC can plug in to the
EndpointSelector to run action constraints.
2018-07-28 19:03:12 -07:00
James Newton-King f870503cdd
Fix HttpMethodMetadata debug string (#666) 2018-07-28 11:13:30 +12:00
Ryan Nowak 54e5370e8f Add CORS support to HttpMethodMatcherPolicy
Also removes HttpMethodEndpointConstraint, since it's been fully
replaced.
2018-07-26 23:01:11 -07:00
James Newton-King c68c5befc7
Remove ChangeToken from EndpointDataSource (#662) 2018-07-26 11:06:54 +12:00
Ryan Nowak 19f24cad16 fix silly constructor 2018-07-24 21:54:24 -07:00
James Newton-King 1340f9c26b
Add EndpointSelectorCandidate ctor to not break MVC (#661) 2018-07-25 16:03:26 +12:00
James Newton-King fdff66054f
Missing ChangeToken -> GetChangeToken updates (#660) 2018-07-25 14:35:41 +12:00
Ryan Nowak 147c9527f3
Implement EndpointSelector and MatcherPolicy (#646)
Implement EndpointSelector and MatcherPolicy

This change makes the EndpointSelector API more concrete, and is the
beggining of removing EndpointConstraint by making it obsolete.

To that end, I'm introducing MatcherPolicy, which is a
feature-collection API for registering policies that interact with the
DfaMatcher. The two policies that we'll need to start are:
- ability to order endpoints
- ability to append 'policy' nodes to the graph

These two concepts together replace EndpointConstraint. Extending our
graph representation is a really efficient way to processing most common
scenarios.

---

In general this helps with common cases where 4 or so endpoints match
the URL, but with different HTTP methods supported on each. Today we
have to process route values and call into some 'policy' to make a
decision about which one is the winner. This change pushes this
knowledge down into the graph so that it's roughly as cheap as a
dictionary lookup, and can be done allocation-free.

The big savings here is ability to remove more candidates *before*
collecting route data.

---

Along with this change, I also built 'rejection' into the DFA node
model, you can see an example with the HTTP Method handling that I
implemented. I implemented a policy that can treat failure to resolve an
HTTP method as a 405 response by returning a failure endpoint. This is
at the heart of much of the feedback we've gotten in this area around
versioning and http method handling. We also have a version of this
feature in MVC for [Consumes].
2018-07-24 17:31:51 -07:00
Kiran Challa f37ca0d2e9 Show list of endpoints in CompositeEndpointDataSource's DebuggerDisplayString
[Fixes #633] Show list of registered endpoints as debugger display string
2018-07-24 17:22:43 -07:00
Kiran Challa 6f4c10a664 PR feedback 2018-07-24 17:17:08 -07:00
Kiran Challa 71cb933a08 Show a flattened tree in LinkGenerationDecisionTree's DebuggerDisplayString
[Fixes #636] Flatten the LinkGenerationDecisionTree to show as debugger display string
2018-07-24 17:11:53 -07:00
Kiran Challa 34499dbe24 Added support for suppressing link generation for endpoints 2018-07-24 16:47:34 -07:00
Kiran Challa 7da1baf9d8 Do not use decision tree for named routes in RouteValuesBasedEndpointFinder 2018-07-24 05:33:19 -07:00
Kiran Challa 5f1631ab46 Added support for configuring route options with LinkGenerator 2018-07-24 04:45:33 -07:00
Ryan Nowak 2c325440de Remove AddDispatcher/UseDispatcher 2018-07-22 20:35:10 -07:00
James Newton-King 1e807240ea
Add GetChangeToken to EndpointDataSource (#649) 2018-07-23 13:46:22 +12:00
Ryan Nowak b9df95831d Change Branding
For preview one the branding is:

new thing = UseGlobalRouting/UseEndpoint
old thing = UseRouter

We're going to drop the name Dispatcher everywhere and make sure that we
position our new work as 'new and improved routing' instead of
introducing a new product/concept name.

We're not totally sure of the term Global yet, but it's what we're doing
for preview 1. Suggestions welcome for dicussion after we do the first
preview :)
2018-07-22 16:41:59 -07:00
Ryan Nowak f1c060bf3d RoutePattern everywhere 2018-07-20 13:04:34 -07:00
James Newton-King 90395c933d
Implement IRoutingFeature on EndpointFeature for back-compat (#641) 2018-07-20 18:23:14 +12:00
Kiran Challa 41f56dbbed Minor fix to DefaultLinkGenerator and enabled constraint related tests in DefaultLinkGeneratorTest 2018-07-19 09:11:50 -07:00
Ryan Nowak 477296a3cc Make DFA matcher the default 2018-07-18 07:50:27 -07:00
Ryan Nowak 400d243f42
Fix remaining feature gaps in DfaMatcher (#621)
* Fix remaining feature gaps in DfaMatcher

* addressed minor feedback

* missed one
2018-07-17 19:22:46 -07:00
Kiran Challa 1196349bf4 [Fixes #583] Handle change events in RouteValueBaseEndpointFinder 2018-07-17 05:54:11 -07:00
Kiran Challa aed2e24483 Allow to pass in HttpContext when generating links 2018-07-17 05:16:57 -07:00
Ryan Nowak 02e1d78319 Minor fixes for MatchProcessorFactory
Fixing minor issues found doing DFA integration.
2018-07-16 21:06:35 -07:00
Ryan Nowak b2e4743c7d
Change benchmarks (#612)
Add benchmarks that include some HTTP method matching.

Clean up names and name like-kinded benchmarks alphabetically.

Matcher*Benchmark -> E2E including HTTP method selection
MatcherSelectCandidates*Benchmark -> Focused on just URL path processing
2018-07-14 17:21:05 -07:00
James Newton-King 497a38035d
Add application startup check that dispatcher is added to request pipeline (#614) 2018-07-15 11:50:55 +12:00
James Newton-King 73e4d55d7b
Check dispatcher services registered (#610) 2018-07-14 18:20:42 +12:00
Ryan Nowak 9e114b547d
Introduce RoutePattern (#585)
* Introduce RoutePattern

Introduces RoutePattern - a new parser and representation for routing
templates, defaults, and constraints.

This is a new representation for all of the 'inputs' to routing that is
immutable and captures 'out of line' information for defaults and
constraints.

This will allow us to unify the handling of constraints and values from
attribute style routes and conventional style routes.
2018-07-13 18:01:46 -07:00
Kiran Challa bc79a47959 Temporary change to prevent cross repo breaking change: Added ooverload for MatcherEndpoint 2018-07-13 14:24:11 -07:00
Kiran Challa 42708bec91 Added support for route constraints in Dispatcher world 2018-07-13 14:18:54 -07:00
Kiran Challa 1c7f53ae39 Fix TemplateBinder to consider null and empty string values the same 2018-07-13 10:21:55 -07:00
Ryan Nowak 7209cab5e9
Productize JumpTable (#594)
* Productize JumpTable
2018-07-12 23:28:51 -07:00
James Newton-King 0cf972cc43
Error message on no dispatcher middleware in endpoint middleware (#600) 2018-07-13 10:16:21 +12:00
Kiran Challa 3a022107dc Revert "Added support for route constraints in Dispatcher world"
This reverts commit 85e92ab3cc.
2018-07-12 06:24:37 -07:00
Nate McMaster 85e92ab3cc Added support for route constraints in Dispatcher world 2018-07-12 05:06:22 -07:00
Kiran Challa 1009705283 Added a RouteValuesBasedEndpointFinder 2018-06-28 10:53:10 -07:00
Ryan Nowak bc5f02444b
Benchmarks and improvements to route value dictionary (#577)
* Add benchmarks for RVD

There are the scenarios that are critical for URL matching performance.

* Reimplement RouteValueDictionary

Improves the scenarios with benchmarks by about 30%

* Fix benchmark

* PR feedback

* More feedback and tests
2018-06-26 13:41:49 -07:00
Ryan Nowak 30fcfb65ea Productionize Path tokenization 2018-06-21 17:13:03 -07:00
James Newton-King 6efd679ce3
Fix TreeMatcher with route constraints (#576) 2018-06-22 10:33:44 +12:00
Kiran Challa d3ddc1709a Added initial support for link generation when using Dispatcher 2018-06-14 15:31:30 -07:00
Ryan Brandenburg 7423bb8702 Set 2.1 baselines 2018-06-14 14:10:02 -07:00
James Newton-King 9efa7665c9
Fix endpoint constraint cache (#555) 2018-06-13 16:40:06 +12:00
James Newton-King 6a6bd3f0da
Refactor TreeMatcher to not use async (#552) 2018-06-13 08:48:27 +12:00
James Newton-King 28d1bc4fa2
Fix TreeMatcher's use of EndpointSelector (#551) 2018-06-12 15:47:34 +12:00
James Newton-King 84bc8351c9
Initial endpoint constraints functionality (#548) 2018-06-12 09:43:17 +12:00
Ryan Nowak 08f12f2bfd Add sample matcher tests 2018-06-09 13:29:06 -07:00
James Newton-King 1b470f3d3b
Fix Endpoint order in TreeMatcher (#542) 2018-06-08 16:19:56 +12:00
James Newton-King 48dd7a9688
Fix log order (#540) 2018-06-08 08:57:24 +12:00
James Newton-King 21f8ce5e95
Initial DispatcherMiddleware tests (#529) 2018-06-07 21:47:06 +12:00
Ryan Nowak 49f839a286 Add benchmarks for matcher implementations 2018-06-06 21:50:07 -07:00
James Newton-King b27f032b43
Fix EndpointMetadataCollection filename (#528) 2018-06-07 09:15:50 +12:00
Ryan Nowak dc4be30d88 Rename Treenumerator -> TreeEnumerator 2018-06-01 21:33:30 -07:00
James Newton-King 81dde1a9f1 PR feedback 2018-06-01 21:33:30 -07:00
Ryan Nowak 0ea16ddd57 Code dump of dispatcher prototype code
Here's a code dump of the parts of the Dispatcher prototype codebase
that are needed to get us off the ground.

This first cut attempts to use part of routing where possible, and not
all of those changes will be long-lasting.

I'll leave comments through thoughout the PR for education.
2018-06-01 21:33:30 -07:00
kishan.anem acea87a617 IUrlHelper and support for RouteOptions.LowercaseUrls
changes are made as suggestions.
@rynowak
#518
#Issue:  aspnet/Mvc#7720
2018-05-31 20:07:01 -07:00
kishan.anem cb77c17cf4 TestCase added and IUrlHelper and support for RouteOptions.LowercaseUrls
checked appliesd to the query string.
@rynowak
#518
#Issue:  aspnet/Mvc#7720
2018-05-31 20:07:01 -07:00
kishan.anem f227cbeca3 Added sperate option "IUrlHelper and support for RouteOptions.LowercaseUrls "
@rynowak
#518
#Issue:  https://github.com/aspnet/Mvc/issues/7720
2018-05-31 20:07:01 -07:00
kishan.anem 695fb00308 IUrlHelper and support for RouteOptions.LowercaseUrls
IUrlHelper and support for RouteOptions.LowercaseUrls

#issue : https://github.com/aspnet/Mvc/issues/7720
2018-05-31 20:07:01 -07:00
Ryan Brandenburg c8d842c160 Merge remote-tracking branch 'origin/release/2.1' into rybrande/MergeRelease21IntoDev 2018-04-16 15:05:29 -07:00
Kiran Challa 4184b2406d Updated to make routing always use UrlEncoder.Default and not depend on DI to get it.
[Fixes #513] RedirectToAction with Non-English Characters in Parameters and Authentication Causes Error
2018-04-12 05:15:45 -07:00
Ryan Brandenburg dc07aba935 Set 2.0 baselines 2018-03-19 09:27:10 -07:00
Jass Bagga 57697baedb
Tolerate leading "~/" or "/" (#509) 2018-01-11 13:00:01 -08:00
Jass Bagga 93d20ec78c
Revert Dispatcher changes (#508)
Addresses aspnet/Home#2741
2018-01-10 12:53:17 -08:00
Jass Bagga 8502900c18
Add Dispatcher packages descriptions (#507)
Addresses aspnet/Home#2656
2018-01-04 11:02:05 -08:00
Jass Bagga c66d5240d1
Recreate cache of endpoints when data source updated (#503)
Addresses #454
2018-01-03 14:33:16 -08:00
Jass Bagga 54e96bd404
Tolerate leading "~/" or "/" (#499)
Addresses #441
2017-11-21 14:20:17 -08:00
Jass Bagga 1b0258ab8f
Move AddEntryToTree to shared source (#496)
Addresses #495
2017-11-20 14:18:50 -08:00
Jass Bagga e2bcefc3d0
Move TreeEnumerator to shared source (#494) 2017-11-15 11:17:59 -08:00
Jass Bagga 7f8ba171f4
Move UrlMatchingTree to shared source (#492)
Addresses #489
2017-11-13 11:40:26 -08:00
Nate McMaster 6c8af17e3a
Add placeholder package descriptions to fix NuGetPackageVerifier errors (#490)
Merged to unblock CI. cref #491 to update the packages with tags and real package descriptions
2017-11-08 09:43:55 -08:00
Jass Bagga fd83b300b8
Port TreeMatcher (#488)
Addresses #472
2017-11-07 10:51:50 -08:00
Jass Bagga 3fadca6a1b
Add IConstraintFactory (#487)
Addresses part of #472
2017-11-02 10:57:37 -07:00
Nate McMaster f4fb178f55 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 16:32:09 -07:00
Ryan Nowak bb413c6ac3 Rename a bunch of old stuff 2017-10-26 12:35:58 -07:00
Ryan Nowak 81ddda7b96 Add MetadataCollection 2017-10-26 12:35:58 -07:00
Ryan Nowak 812fa9599a Reorganize some folders 2017-10-26 12:35:58 -07:00
Ryan Nowak ddcc409353 Move some files in/out of abstractions 2017-10-26 12:35:58 -07:00
Ryan Nowak d612072d1a Fix a broken MVC test 2017-10-25 23:29:35 -07:00
Ryan Nowak 736b49294d Add Template abstraction
This change adds the Template as a top level abstraction. URL templating
is now a two-stage process.

First you use a 'key' to look up a Template, then you use the Template
to create the URL.

This change also has some cleanup of the way RoutePatternBinder gets
instantiated. I added a factory service so that most of the complex
things can be made internal to Dispatcher. Now it's much easier to
constuct and use. These impacts some pubternal APIs that we already
broke, but makes them actually nice :)

Also cleaned up some tests and fixed one that was broken and not
running.
2017-10-25 22:15:24 -07:00
Ryan Nowak 2d661396df Port TemplateBinder to dispatcher 2017-10-25 14:28:20 -07:00
Jass Bagga eebc7db2ca Use RoutePatternMatcher logic in TemplateMatcher (#484) 2017-10-25 14:16:04 -07:00
Jass Bagga 485278bf0d Add RoutePatternMatcher to Dispatcher (#482) 2017-10-23 11:20:23 -07:00
Ryan Nowak bd517f891f Support conversions from RouteTemplate -> RoutePattern 2017-10-20 16:58:14 -07:00
Ryan Nowak df78db934d Port IRouteConstraint to the dispatcher project 2017-10-20 14:04:22 -07:00
Jass Bagga fdc5f21428 Port PathTokenizer (#478) 2017-10-20 13:24:00 -07:00
Ryan Nowak 08a64048da Redesign public API for templates
-Renamed RouteTemplate -> RoutePattern
-Made immutable
-Added Builder
-Lots of fixes to parser to support new design

There are a few small issues logged for follow-up but this is mostly in
the place I want it design-wise.
2017-10-19 09:41:45 -07:00
George Chakhidze a3c1b6d033 Avoid allocation of a new char array on every request in RouteCollection class
This is a very small micro-optimization: When LowercaseUrls and/or AppendTrailingSlash
options are enabled, on every call to RouteCollection.NormalizeVirtualPath a new
char[] { '?', '#' } is being allocated.
2017-10-17 17:45:15 -07:00
Jass Bagga 3a5cd6dd25 Port TemplateParser to Dispatcher project (#473)
Addresses #466
2017-10-17 11:52:26 -07:00
Ryan Nowak 927f8ed3d2 Add empty baselines for dispatcher
These packages didn't exist in 2.0 so there's no compat bar.
2017-10-17 10:46:03 -07:00
Jass Bagga bdbe922b22 Add logging (#467)
Addresses #439
2017-10-12 14:23:01 -07:00
Ryan Nowak 56ae2e0177 Respond to feedback about handler factory
- Handler factories are now associated with the dispatcher entry
- Handler factory is now an interface
2017-10-06 10:11:05 -07:00
Ryan Nowak 63d2cc4637 Changes due to davidfowl feedback
Changed dispatchers to IMatcher, added a context.

Removed a bunch of outdated cruft and updated the sample to use
attribute-routing like entries.
2017-10-05 18:31:23 -07:00
Jass Bagga 2f8951e244 Productize HttpMethodEndpointSelector (#463)
Addresses #452
2017-10-05 15:14:17 -07:00
Jass Bagga f49cbd1b25 Selectors initialization and DispatcherBase logging (#451) 2017-09-29 17:50:45 -07:00
Ryan Nowak abb41302e9 Add a dispatcher by default (#462)
This change adds the TreeDispatcher by default to the pipeline. You can
register DispatcherDataSource instances to configure it.
2017-09-29 16:06:38 -07:00
Ryan Nowak bd750ad76d Making endpoints and addresses easier
This makes endpoints and addresses easier to work with by dropping the
'metadata first' approach for the the things that are really at the core
of the dispatcher.
2017-09-28 22:07:32 -07:00
Ryan Nowak 5fed462123 Add tree dispatcher 2017-09-27 14:34:09 -07:00
Ryan Nowak eeebefee1b Add data source 2017-09-26 10:17:48 -07:00
Ryan Nowak 7685e17e80 Add Addresses and link generation 2017-09-24 23:16:34 -07:00
Javier Calvarro Nelson 475712d613 Update API Check baselines 2017-09-22 14:16:39 -07:00
Ryan Nowak 41f26dc69d Add endpoint disambiguation
- Better sample of metadata
- Sample shows how conventional routing would work
- Added endpoint disambiguation
2017-09-22 10:54:20 -07:00
Ryan Nowak d652b86852 Split RVD in twain 2017-09-21 09:19:10 -07:00
Ryan Nowak 134096d9cb Relayer implementation
This refactor introduces two major changes

1. Now creating the 'handler' delegate happens inside the endpoint
middleware. This allows you to short circuit even harder, AND to create
endpoint funcs that capture and use 'next' to rejoin the middleware
pipeline.

2. Relayered the implementation to have routing plug into the dispatcher.
It wasn't immediately apparent to me that this was the right thing to do,
but I think we will need to do things this way to deliver the kind of
back-compat experience we need to do.

The idea that I have is that 'attribute routing' will be the 'default'
entry in the dispatcher. Adding additional conventional routes or other
IRouter-based extensibility will be possible through adapters - but the
default experience will be to add items to the 'attribute route'.

So. We will need to port the attribute routing infrastructure to the
dispatcher library.

We may also need to make RVD into a subclass of something in the
dispatcher assembly.
2017-09-17 18:29:22 -07:00
Jass Bagga b01072eb47 Use RouteTemplate and TemplateMatcher (#443)
Addresses #438
2017-09-14 15:24:40 -07:00
Jass Bagga a9b47f6722 Startup experience (#442)
Addresses #437 and #440
2017-09-11 15:10:33 -07:00
Jass Bagga ebd0baa458 Add dispatcher packages 2017-08-31 11:54:27 -07:00
Nate McMaster e67d85d30c Use PackageLineup to manage PackageReference versions 2017-08-29 11:31:54 -07:00
Nate McMaster 44f9a7083b Use Directory.Build.props/targets 2017-08-29 11:30:03 -07:00
Pranav K a23f1601fd Remove usage of TaskCache 2017-06-08 09:06:41 -07:00
Ryan Nowak d39305aa91 Improve formatting 2017-05-24 08:36:24 -07:00
Ryan Nowak 1165a1de33 Updates to generated resource files 2017-05-24 08:32:15 -07:00
Joonas Westlin 9a6cb89b8d Adjusted example error message to reflect the situation that causes the error. 2017-05-24 08:23:20 -07:00
Joonas Westlin a18f59ab88 Changed expected exception message to the one defined in Resources.resx.
Removed the Debug.Assert as that caused the test runner to crash as in
this case the preceding part is not a literal.
Fixes the test runner crash.
2017-05-24 08:23:20 -07:00
Ryan Brandenburg efb097ce60 Target .NET Standard 2.0 and add net461 testing 2017-05-23 14:38:36 -07:00
John Luo 1f3b20e177 Migration 2017-05-05 17:54:49 -07:00
Pranav K ce021a888e Change TFM to netcoreapp2.0 2017-05-05 09:49:42 -07:00
Ryan Nowak 232b73a151 Fix aspnet/Mvc#6218
This fixes the case described in the comments in TemplateBinder.

This case is much more common for pages which is why we're only seeing it
now. We've had this issue for all of 1.0.0 in both conventional and
attribute routing.
2017-04-28 17:00:35 -07:00
Smit Patel 0aebdb4110 Update API Check related files
React to aspnet/BuildTools#238
2017-04-25 08:19:04 -07:00
Steve Sanderson 8c58086030 Make TreeRouter restore RouteData snapshots consistently. Fixes #394. 2017-04-11 15:36:34 +01:00
Pranav K 1ef45e64b8 Update to net46 2017-03-22 18:26:48 -07:00
Nate McMaster 101764328b Consolidate dependency versions to one file and remove workarounds 2017-03-15 17:01:10 -07:00
Pranav K 0f4ce625ed Update to VS 2017 RC3 2017-01-27 11:04:42 -08:00
Kiran Challa 755d436840 Fixed error message related to escaping curly braces. 2017-01-03 14:33:36 -08:00
Kiran Challa 071b616178 Merge branch 'rel/1.1.1' into dev
# Conflicts:
#	NuGet.config
#	samples/RoutingSample.Web/project.json
#	src/Microsoft.AspNetCore.Routing.Abstractions/project.json
#	src/Microsoft.AspNetCore.Routing.DecisionTree.Sources/project.json
#	src/Microsoft.AspNetCore.Routing/project.json
#	test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests/project.json
#	test/Microsoft.AspNetCore.Routing.DecisionTree.Sources.Tests/project.json
#	test/Microsoft.AspNetCore.Routing.FunctionalTests/project.json
#	test/Microsoft.AspNetCore.Routing.Tests/project.json
2017-01-03 13:33:26 -08:00
Kiran Challa 4bfd663c45 [Fixes #370] Raw route values should be restored after template binder failing binding values when generating a url
- Reverted changes made in commit: 1c9a54aeb8
2017-01-03 13:23:36 -08:00
Pranav K ce525150ab Updating to 4.4 CoreFx packages 2016-12-21 22:55:19 -08:00
Ajay Bhargav Baaskaran c5b7a3f710 Fixed a policheck violation 2016-12-21 11:05:09 -08:00
Kiran Challa 20967cfa76 [Fixes #367] Add extensions on WebHostBuilder for super simple HTTP service application building 2016-12-21 10:04:02 -08:00
Nate McMaster 45247e4d9c Update Microsoft.AspNetCore.Routing.DecisionTree.Sources to use contentFiles 2016-12-15 17:54:10 -08:00
Pranav K a457be5386 Pinning missed tools and dependencies 2016-11-18 12:42:03 -08:00
Pranav K 3db35194c9 Pinning versions for 1.1.0 release 2016-11-18 12:13:32 -08:00
Pranav K d3c145cbe8 Updating versions to 1.2.0-* 2016-11-09 14:19:24 -08:00
jacalvar 54dfea2633 Created public API baselines 2016-11-07 10:55:04 -08:00
Pranav K 67d0c13815 Updating partner package versions 2016-10-03 20:00:38 -07:00
jacalvar 74a3063c45 [Fixes #357] Fix behavior when optional parameters are defined within a route and not at the end 2016-10-03 19:31:17 -07:00
jacalvar 438ec83227 [Fixes #359] Routing is matching empty segments to parameters and defaults are wrong 2016-10-03 15:34:04 -07:00
Pavel Krymets 032bcf43b2 Use TaskCache class from Microsoft.Extensions.TaskCache.Sources (#361)
Instead of Task.FromResult(0)
2016-09-08 09:25:44 -07:00
Kiran Challa 56b3fb9b6f [Fixes #351] Error message incorrectly references RouteCollection when you don't set the default handler on RouteBuilder 2016-08-30 11:16:35 -07:00
Kiran Challa 714c3d6659 [Fixes #4991] Misleading MissingMethodException message for incorrect routes 2016-08-10 12:09:28 -07:00
Ivano Scifoni 88de3d5070 StringRouteConstraint implementation 2016-08-04 10:39:53 -07:00
Ajay Bhargav Baaskaran dde24fbba0 Optimize ListStorage in RouteValueDictionary 2016-07-18 17:31:50 -07:00
mnltejaswini 6801715daf Add support for IEnumerable<KeyValuePair<string, string>> in RouteValueDictionary Fixes #329 (#335) 2016-07-18 12:12:34 -07:00
Doug Bunting 1bcd01338a One build to rule them all
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:31:06 -07:00
jacalvar 90dc4bc207 [Fixes #324] Default parameters are not taken into account on attribute routing 2016-07-01 16:06:03 -07:00
Ryan Nowak 0978a7dd16 Add some tests, rename misnamed file 2016-07-01 09:29:02 -07:00
Muchiachio 4adc693cb5 Add an UseRouter that takes Action<IRouteBuilder>
- Added an overload of UseRouter that takes Action<IRouteBuilder>, to
make configuring standalone routing much less verbose.

Addresses #332
2016-07-01 08:50:29 -07:00
Muchiachio 322e1f5d9c Make routing feature class public
- Made routing feature class public, to lower boilerplate code in client
code tests.

Addresses #333
2016-06-30 08:58:33 +03:00