// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNet.Builder; using Microsoft.Extensions.DependencyInjection; namespace RoutingWebSite { public class Startup { // Set up application services public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddScoped(); } public void Configure(IApplicationBuilder app) { app.UseCultureReplacer(); app.UseErrorReporter(); app.UseMvc(routes => { routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action}", new { controller = "Home", action = "Index" }); routes.MapRoute("ActionAsMethod", "{controller}/{action}", defaults: new { controller = "Home", action = "Index" }); routes.MapRoute( "products", "api/Products/{country}/{action}", defaults: new { controller = "Products" }); // Added this route to validate that we throw an exception when a conventional // route matches a link generated by a named attribute route. // The conventional route will match first, but when the attribute route generates // a valid route an exception will be thrown. routes.MapRoute( "DuplicateRoute", "conventional/Duplicate", defaults: new { controller = "Duplicate", action = "Duplicate" }); routes.MapRoute( "RouteWithOptionalSegment", "{controller}/{action}/{path?}"); }); } } }