none
Falsche Controllernamen handhaben RRS feed

  • Frage

  • Gegeben ist ein ASP. Net Core 3.1 Backend.

    Die Abfrage {{base_url}}/api/json/reply/Page funktioniert.

    Die Abfrage {{base_url}}/api/json/reply/Page1 funktioniert nicht, das das keinen Controller findet. Es wurde sich schlicht vertippt. Der Return Code ist 200 und der Body eine HTML PAGE mit 'You need to enable JavaScript to run this app.'

    Frage: Wie kann ich Requests in denen die Url falsch ist, weil bspw, der Controllername nicht stimmt, so handeln, das ein 404  zurück kommt? 

    Ist-Stand:

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


    • Bearbeitet Regae Dienstag, 15. Dezember 2020 11:21
    Dienstag, 15. Dezember 2020 11:21

Antworten

  •   endpoints.MapFallbackToFile("/index.html");

    verhält sich so wie wir es brauchen

    • Als Antwort markiert Regae Dienstag, 15. Dezember 2020 13:28
    Dienstag, 15. Dezember 2020 13:28

Alle Antworten

  • Hi,

    die Meldung kommt ja nicht vom Webservice/der Api, sondern vom Frontend. Daher müssten wir erstmal wissen: Welches Frontend verwendest Du da?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Dienstag, 15. Dezember 2020 11:42
    Moderator
  • Ah, jetzt sehe ich was Du meinst. Im Backend ist eine kleine React App als SPA hinterlegt. D.h. wird kein Controller gefunden wird die dortige index.html angezeigt. Im Grunde wäre folgendes gut:

    {{base_url}}/index.html zeigt die index.html der SPA an.

    alles was 

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

    matcht wird von den Controllern gehandelt, der Rest soll zu einer 404 führen.



    • Bearbeitet Regae Dienstag, 15. Dezember 2020 12:26
    Dienstag, 15. Dezember 2020 12:09
  •   endpoints.MapFallbackToFile("/index.html");

    verhält sich so wie wir es brauchen

    • Als Antwort markiert Regae Dienstag, 15. Dezember 2020 13:28
    Dienstag, 15. Dezember 2020 13:28