54 Stimmen

Fehler "Die Ressource kann nicht gefunden werden.", wenn ein "Punkt" am Ende der URL steht

Ich verwende ASP.NET MVC Beta und ich erhalte den HTTP 404 (Die Ressource kann nicht gefunden werden) Fehler, wenn ich diese URL, die einen "Punkt" am Ende hat verwenden:

http://localhost:81/Title/Edit/Code1 .

Wenn ich den Punkt am Ende entferne oder der Punkt irgendwo in der Mitte ist, bekomme ich den Fehler nicht.

Ich habe versucht, zu debuggen, aber es bekomme ich den Fehler von "System.Web.CachedPathData.GetConfigPathData(String configPath)" vor ProcessRequest in MvcHandler.

Ist ein "Punkt" am Ende einer URL nicht erlaubt? Oder gibt es eine Möglichkeit, die Routendefinition so zu ändern, dass sie diese Url verarbeiten kann?


Ein Beispiel: Ich habe eine Tabelle mit dem Namen Detail1 [Id(integer), Code(string), Description(string)], die über ihre Id-Spalte eine FK-Beziehung zu Master1 hat. Immer wenn ich einen Datensatz von Master1 auswähle, wähle ich auch den zugehörigen Detail1-Datensatz aus, um das Feld Code zu erhalten. Um diese Verknüpfung nicht jedes Mal durchführen zu müssen (da es in der Regel nicht nur ein Detail gibt, sondern mehrere), verzichte ich auf die Id-Spalte und mache Code PK von Detail1.

Aber wenn ich Id loswerde und Code als PK verwende, dann beginnen meine Routen auch mit dem Code-Feld zu arbeiten, wie: Detail1 \Edit\Code1

Dieser Code kann alles Mögliche enthalten oder am Ende stehen, einschließlich DOT. Es gibt Fälle, in denen ich ein DOT am Ende verbieten kann, aber manchmal ist es wirklich sinnvoll.

Und ich habe auch dies gesehen Beitrag dass die Routen sehr flexibel sein können, so dass ich meine nicht für so seltsam halte.

Deshalb mache ich etwas so Ungewöhnliches. Irgendwelche Vorschläge?

Und warum ist es so seltsam, ein DOT am Ende einer Url zu haben?

0 Stimmen

Ich bin mir nicht sicher, ob das für Sie noch funktioniert, aber ich habe eine aktuelle Lösung für ältere ASP.NET-Versionen hinzugefügt, sehen Sie es sich an ;).

0 Stimmen

Wenn Sie Ihrer Frage zusätzliche Informationen hinzufügen möchten, bearbeiten Sie einfach Ihre Frage (klicken Sie auf den Link "Bearbeiten" unter Ihrer Frage). Wenn Sie sich zu einer Antwort äußern möchten, nutzen Sie die Kommentarfunktion unter der Antwort. Wenn Sie den Platz für Kommentare als unzureichend empfinden, sollten Sie wahrscheinlich eine Bearbeitung vornehmen. Antworten sollten genau das sein: direkte Antworten auf Ihre Frage.

-3voto

annakata Punkte 72408

Warum kann man keinen URI mit Punkt-Terminierung haben?

Da ein URI eine Ressourcenanfrage ist und ein historischer Imperativ besteht auf allen relevanten Betriebssystemen, dass das Punktzeichen das Verlängerungstrenner . Der letzte Punkt wird als Dateierweiterung behandelt, so dass eine Punkt-Terminierung keinen Sinn ergibt.

Auch lesenswert:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X