Inhaltsverzeichnis
Ansicht
nicht kompiliert werden kann Zugriff auf /Home/Index, da das dritte Segment (ID) keinen Wert hat, wird dieser Parameter gemäß den Routing-Regeln auf DefaultId gesetzt
Hier sind sowohl die ID als auch das letzte Segment variabel, sodass /Home/Index/dabdafdaf äquivalent zu /Home/Index//abcdefdjldfiaeahfoeiho ist äquivalent zu /Home/Index/All/Delete/Perm/ . ...
Heim Backend-Entwicklung C#.Net-Tutorial ASP.NET MVC-Routing-Konfiguration (detaillierte Grafik- und Texterklärung)

ASP.NET MVC-Routing-Konfiguration (detaillierte Grafik- und Texterklärung)

Mar 30, 2017 am 11:48 AM

Sprechen wir über die grundlegenden Routing--Regelprinzipien. Die grundlegenden Routing-Regeln stammen von Special In der allgemeinen Anordnung stehen die speziellsten (nicht zum Mainstream gehörenden) Regeln am Anfang und die allgemeinsten (Allzweck-)Regeln am Ende. Dies liegt daran, dass die passenden Routing-Regeln ebenfalls in dieser Reihenfolge stehen, also selbst wenn Sie schreiben sie in umgekehrter Reihenfolge. Sie können immer noch auf 404 warten.

XD Lassen Sie uns zunächst über die Struktur der URL sprechen >

ASP.NET MVC-Routing-Konfiguration (detaillierte Grafik- und Texterklärung)

URL-Konstruktion

Benannte Parameterspezifikation + anonym
Objekt

Route erstellen und dann

direkt hinzufügen
Methodenüberladung + anonymes Objekt

Persönlich denke ich, dass das erste einfacher zu verstehen ist , die zweite ist einfacher zu debuggen und die dritte ist effizienter zu schreiben. Dieser Artikel bevorzugt den dritten Typ 🎜> 1. Standard-Routing (
MVC
wird mitgeliefert

2. Statisches URL-Segment


Ohne Platzhalter-Routing ist es fertig Schreiben Sie es beispielsweise so und greifen Sie dann auf http://localhost: Variablen.


3. Das variable URL-Segment (naja, diese Übersetzung verrät meine Intelligenz)



Bild ist nicht gepostet Der Titel wird als DefaultId angezeigt. Beachten Sie, dass der Wert im
Controller

zugewiesen werden muss und in

Ansicht
nicht kompiliert werden kann Zugriff auf /Home/Index, da das dritte Segment (ID) keinen Wert hat, wird dieser Parameter gemäß den Routing-Regeln auf DefaultId gesetzt

Dies ist deutlich zu erkennen indem wir dem Titel mit viewbag einen Wert zuweisenLassen Sie uns noch einmal über die Standardroute sprechen und geben Sie dann die Standardroute zurück. Dies wird als optionales URL-Segment bezeichnet Es gibt keinen solchen Parameter in der Route, die ID ist null
. Laut Originaltext kann dieses optionale URL-Segment verwendet werden, um eine Trennung von Bedenken zu erreichen Nach meinem Verständnis werden die tatsächlichen Parameter vom Benutzer gesendet, und wir definieren lediglich den formalen Parameternamen. Wenn Sie jedoch darauf bestehen, den Parametern Standardwerte zuzuweisen wird empfohlen. Syntaktischer Zucker wird in den Aktionsparameter geschrieben:



5.

Hier sind sowohl die ID als auch das letzte Segment variabel, sodass /Home/Index/dabdafdaf äquivalent zu /Home/Index//abcdefdjldfiaeahfoeiho ist äquivalent zu /Home/Index/All/Delete/Perm/ . ...

6. Namespace-übergreifendes Routing

Das erinnert mich daran, den Namespace anzugeben und die IIS-Website zu öffnen, sonst wird es 404 sein. Das ist sehr untypisch und es ist nicht empfehlenswert, sich damit herumzuschlagen.


Wenn das erste URL-Segment nicht Home ist, wird es schließlich zur Verarbeitung an das zweite übergeben Stellen Sie diese Route auch so ein, dass sie nicht gefunden wird, wenn sie nicht gefunden wird. Lassen Sie einen Ausweg für die folgenden Routen, damit Sie nicht weiter nach unten suchen müssen.

Aber wenn es so geschrieben wird, wird das

Array
in keiner bestimmten Reihenfolge eingestuft. Wenn es mehrere übereinstimmende Routen gibt, wird ein Fehler gemeldet. Dann schlug der Autor eine verbesserte Schreibmethode vor.

7.Regulärer AusdruckMatch-Route

Einschränkung Mehrere URLs 8. Geben Sie die Anforderungsmethode an 9. WebForm unterstützt

für Details, siehe

Verwendung Asp .Net4 neue Funktion Routing erstellt WebForm-Anwendung


oder offizielles MSDN


10. MVC5s RouteAttribute

muss zuerst die Route in der Routenregistrierungsmethode
registrieren


Auf diese Weise ist die Routenfunktion wirksam. Es gibt auch Routing-Einschränkungen, Reihenfolge, Routennamen usw.
Andere umfassen Routenpräfixe und Routenstandardwerte


路由构造


参数限制

tr>



Constraint Description Example
alpha Matches uppercase or lowercase Latin alphabet characters (a-z, A-Z) {x:alpha}
bool Matches a Boolean value. {x:bool}
datetime Matches a DateTime value. {x:datetime}
decimal Matches a decimal value. {x:decimal}
double Matches a 64-bit floating-point value. {x:double}
float Matches a 32-bit floating-point value. {x:float}
guid Matches a GUID value. {x:guid}
int Matches a 32-bit integer value. {x:int}
length Matches a string with the specified length or within a specified range of lengths. {x:length(6)}  {x:length(1,20)}
long Matches a 64-bit integer value. {x:long}
max Matches an integer with a maximum value. {x:max(10)}
maxlength Matches a string with a maximum length. {x:maxlength(10)}
min Matches an integer with a minimum value. {x:min(10)}
minlength Matches a string with a minimum length. {x:minlength(10)}
range Matches an integer within a range of values. {x:range(10,50)}
regex Matches a regular expression. {x:regex(^d{3}-d{3}-d{4}$)}


Einschränkung Beschreibung Beispiel
alpha Entspricht Groß- oder Kleinbuchstaben des lateinischen Alphabets (a-z, A-Z) {x:alpha}
bool Entspricht einem booleschen Wert. {x:bool
datetime Entspricht einem DateTime-Wert. {x:datetime}
decimal Entspricht einem Dezimalwert. {x:decimal}
double Entspricht einem 64-Bit-Gleitkommawert. {x:double}
float Entspricht einem 32-Bit-Gleitkommawert. {x:float}
guid Entspricht einem GUID-Wert. {x:guid}
int td> Entspricht einem 32-Bit-Ganzzahlwert. {x:int}
length Entspricht einer Zeichenfolge mit der angegebenen Länge oder innerhalb eines angegebenen Längenbereichs. {x:length(6)}  {x:length(1,20)}
long Entspricht einem 64-Bit-Ganzzahlwert. {x:long}
max Entspricht einer Ganzzahl mit einem Maximalwert. {x:max(10)
maxlength Entspricht einer Zeichenfolge mit eine maximale Länge. {x:maxlength(10)
min Entspricht einer Ganzzahl mit einem Mindestwert. {x:min(10)
minlength Entspricht einer Zeichenfolge mit einer Mindestlänge. {x:minlength(10)}
range Entspricht einer Ganzzahl innerhalb eines Wertebereichs. {x: range(10,50)
regex Entspricht einem regulären Ausdruck. {x:regex(^d{3 }-d{3}-d{4}$)}

具体的可以参考

Attributrouting in ASP.NET MVC 5种灵活的处理.因为这个action定义好后,我不需要跑到配置那里定义对应的路由规则


11.最后还是不爽的话自己写个类实现法。


12.访问本地文档
比如这个就用来匹配是否是用谷歌浏览器访问网页的.

把这个节点里的preCondition删除,变成浏览网站,以开启 IIS UrlRoutingModule节点

13.直接访问本地资源,绕过了路由系统


文件名还可以用符。

IgnoreRoute – RouteCollection – StopRoutingHandler匹配的话, 后面的规则都无效了。 这也就是默认的路由里面routes.IgnoreRoute("{ resources}.axd/{*pathInfo}");写最前面的原因.


路由测试(在测试项目的基础上,要装moq)


  最后还是再推荐一下Adam Freeman写的apress.pro.asp.net.mvc.4这本书.稍微熟悉MVC的从第二部分开始读好了。前面都是入门(对我来说是扯淡). ,然后标题起个深入解析XXXX,然后净瞎扯淡。最后一千多页的巨著又诞生了.Adam Freeman的风格我就很喜欢, 都是实例写作, 然后还在那边书里面专门写了大量的测试.

  哎没办法啊,技术差距就是这样了。


Das obige ist der detaillierte Inhalt vonASP.NET MVC-Routing-Konfiguration (detaillierte Grafik- und Texterklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist die Rolle von CHAR in C -Saiten? Was ist die Rolle von CHAR in C -Saiten? Apr 03, 2025 pm 03:15 PM

In C wird der Zeichenentyp in Saiten verwendet: 1. Speichern Sie ein einzelnes Zeichen; 2. Verwenden Sie ein Array, um eine Zeichenfolge darzustellen und mit einem Null -Terminator zu enden. 3. Durch eine Saitenbetriebsfunktion arbeiten; 4. Lesen oder geben Sie eine Zeichenfolge von der Tastatur aus.

Wie man verschiedene Symbole in der C -Sprache verwendet Wie man verschiedene Symbole in der C -Sprache verwendet Apr 03, 2025 pm 04:48 PM

Die Nutzungsmethoden von Symbolen in der C-Sprachabdeckung Arithmetik, Zuordnung, Bedingungen, Logik, Bitoperatoren usw. werden für grundlegende mathematische Operationen verwendet, Zuordnungsoperatoren werden zur Zuordnung und Addition verwendet, Subtraktion, Multiplikationszuordnung und Abteilungszuweisung, Zustandsbetreiber werden für Unterschiede verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Zeiger, Markierungen am Ende der Datei und nicht numerische Werte.

Wie man mit Sonderfiguren in der C -Sprache umgeht Wie man mit Sonderfiguren in der C -Sprache umgeht Apr 03, 2025 pm 03:18 PM

In der C -Sprache werden Sonderzeichen durch Escape -Sequenzen verarbeitet, wie z. B.: \ n repräsentiert Linienbrüche. \ t bedeutet tab charakter. Verwenden Sie Escape -Sequenzen oder Zeichenkonstanten, um Sonderzeichen darzustellen, wie z. B. char c = '\ n'. Beachten Sie, dass der Backslash zweimal entkommen muss. Verschiedene Plattformen und Compiler haben möglicherweise unterschiedliche Fluchtsequenzen. Bitte wenden Sie sich an die Dokumentation.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Der Unterschied zwischen char und wchar_t in der C -Sprache Der Unterschied zwischen char und wchar_t in der C -Sprache Apr 03, 2025 pm 03:09 PM

In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

Wie man CHO in C -Sprache umwandelt Wie man CHO in C -Sprache umwandelt Apr 03, 2025 pm 03:21 PM

In der C -Sprache kann die char -Typ -Konvertierung direkt in einen anderen Typ konvertiert werden, wenn: Casting: Verwenden von Casting -Zeichen. Automatische Konvertierung des Typs: Wenn ein Datentyp einen anderen Werttyp berücksichtigen kann, wandelt der Compiler diese automatisch um.

Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

So verwenden Sie char Array in C -Sprache So verwenden Sie char Array in C -Sprache Apr 03, 2025 pm 03:24 PM

Das Char -Array speichert Zeichensequenzen in der C -Sprache und wird als char Array_name [Größe] deklariert. Das Zugriffselement wird durch den Einweisoperator weitergeleitet, und das Element endet mit dem Null -Terminator '\ 0', der den Endpunkt der Zeichenfolge darstellt. Die C -Sprache bietet eine Vielzahl von String -Manipulationsfunktionen wie Strlen (), Strcpy (), Strcat () und strcmp ().

See all articles