Frage

Ich fange an einen Port eines bestehenden ASP.NET Web Forms-CMS zu ASP.NET MVC und wollen das Routing von Anfang an erhalten.

. Hinweis: es ist nicht wichtig, genau die gleiche URL-Struktur zu haben,

Ich glaube, diese Antwort der Nähe zu dem, was ich suche würde aber einige zusätzliche Eingabe wie sollte es jemand haben.

Die aktuelle URL struk ist wie:

  

? Content = News / CurrentNews / This_is_a_news_article
  ? Inhalt = Unternehmens- / About_Us / Übersicht

etc etc

Ich möchte eine optionale Sprache Paramater hinzuzufügen und eine ähnliche Struktur in MVC zu halten. So etwas wie:

  

News / CurrentNews / This-is-a-Nachrichten-Artikel
  en / News / CurrentNews / This-is-a-news-Artikel

     

Bearbeiten / News / CurrentNews / This-is-a-Nachrichten-Artikel
  edit / en / News / CurrentNews / This-is-a-news-Artikel

oder bin ich besser mit der Rückseite?

  

News / CurrentNews / This-is-a-Nachrichten-Artikel bearbeiten /
  en / News / CurrentNews / This-is-a-Nachrichten-Artikel bearbeiten /

ich glaube, auf diese Weise (mit Wirkung auf Ende) requries eine Route für jedes Szenario von anderen Fragen, die ich gelesen habe.

Der andere Punkt ist, dass die bestehenden URLS wie das getan werden für SEO und Brotkrümel Generation. dh die URL zeigt die aktuelle Navigationspfad.

Ich konnte nur die aktuelle Seite in der URL zeigen und die Brotkrumen von Datenbank separatly bauen.

Wie:

  

en / This-is-a-news-Artikel

mit Krume

  

Home> News> Aktuelle News> Dies ist eine Meldung

Insgesamt Gedanken und Lösungen? Soll ich mit einem benutzerdefinierten Routing-Klasse für maximale Flexibilität starte nur?

War es hilfreich?

Lösung

Sie müssen sicherstellen, dass es keine zufällige Überlappung bestimmter Routing-Regeln. Zum Beispiel sagen Sie die Sprache als das erste Tag setzen, stellen Sie sicher, wird es keine Nachrichten-Kategorien, die ‚en‘ für einen Namen haben. Ich weiß, dass dies ein dummes Beispiel ist, aber ich glaube, Sie erhalten das Bild. Stellen Sie sicher, dass Sie setzen die wenigsten genaue Routing-Regeln letzte.

Persönlich würde ich es wie folgt strukturiert:

[language]/[category]/[subcategory]/[itemtitle]/[itemid]

Warum die [itemId] können Sie fragen? Wenn Sie eine größere Website haben, könnte es passieren, dass man mit den exakt gleichen Namen 2 Nachrichtenartikel hat. Ihr Code kann „nur zufällig“ geschrieben zu zeigen, nur die erste newsitem zurückgekehrt, aber es genauso gut kann es nicht sein. Eine ID ist immer einzigartig und in SEO Begriffe, die ID Hinzufügen wirklich egal ist (meiner Erfahrung nach zumindest).

Sie können eine Route hinzufügen, wo [Sprache] weggelassen und ein Standard vorgesehen statt.

Außerdem hat Scott Guthrie einen schönen

scroll top