locked
Why I can't match the .html suffix in router? RRS feed

  • Question

  • User1052024640 posted

    I want to match the .html suffix.

    For example, the default index page is 

    https://localhost:44354/home/index

    I want to match this URL also

    https://localhost:44354/home/index.html

    I added these codes in startup.cs

    app.UseEndpoints(endpoints =>
    {
    endpoints.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}.html/{id?}");
    });

    After the program ran, it reports this error:

    An unhandled exception occurred while processing the request.
    AmbiguousMatchException: The request matched multiple endpoints. Matches:

    WebApplication1.Controllers.HomeController.Index (WebApplication1)
    WebApplication1.Controllers.HomeController.Privacy (WebApplication1)
    WebApplication1.Controllers.HomeController.Error (WebApplication1)
    Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportAmbiguity(CandidateState[] candidateState)

    Stack Query Cookies Headers Routing
    AmbiguousMatchException: The request matched multiple endpoints. Matches: WebApplication1.Controllers.HomeController.Index (WebApplication1) WebApplication1.Controllers.HomeController.Privacy (WebApplication1) WebApplication1.Controllers.HomeController.Error (WebApplication1)
    Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportAmbiguity(CandidateState[] candidateState)
    Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ProcessFinalCandidates(HttpContext httpContext, CandidateState[] candidateState)
    Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.Select(HttpContext httpContext, CandidateState[] candidateState)
    Microsoft.AspNetCore.Routing.Matching.DfaMatcher.MatchAsync(HttpContext httpContext)
    Microsoft.AspNetCore.Routing.Matching.DataSourceDependentMatcher.MatchAsync(HttpContext httpContext)
    Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)
    Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.TryServeStaticFile(HttpContext context, string contentType, PathString subPath)
    Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
    Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware.Invoke(HttpContext context)
    Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

    Show raw exception details

    Why it matched multiple endpoints? How can I solve it? Thank you.

    Friday, April 24, 2020 11:04 AM

All replies