Asp.net core default route
.net, asp.net-core, c#, routes
Solution
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Main", action = "Index" });
routes.MapRoute(
name: "default",
template: "{controller=Main}/{action=Index}/{id?}");
These are the two ways of defining default route. You are mixing them. You need always to define a template. In the second way you can write the defaults directly in the template.
Problem
Simplified `Startup` code: ``` public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseMvc(routes => { routes.MapRoute( name: "default", template: "", defaults: new { controller = "Main", action = "Index" }); }); } ``` After running application in Visual Studio 2015 I see in browser "localhost:xxx", but I don't see result of MainController.Index(). Just blank page. What did I miss? Update: Web.config: ``` <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/> </handlers> <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/> </system.webServer> </configuration> ``` Update 2: The problem comes from exception in dependency injected service to controller and because I forget to use developer exception page site just returned blank page to me. So I'm sorry for incorrect question, but routing is fine in my case.