ASP.NET MVC Routing Maproute-parameter
Ich bin gerade durch auf MVC routing frame work
. Ich bin etwas verwirrt über parameter genommen RouteCollection.MapRoute
Methode.
Wenn ich nahm eine trditional Beispiel unten Anfrage
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
- List item
routes.MapRoute(
"Default", //Route name
"{controller}/{action}/{id}", //URL with parameters
new { controller = "Home", action = "Index", id = "" } //Parameter defaults
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
Zugewiesen mit folgenden Signaturen
public static Route MapRoute(
this RouteCollection routes,
string name,
string url,
Object defaults
)
Meine Frage ist in Bezug auf "Object defaults" ,
- Warum wir es als
new { controller = "Home", action = "Index", id = "" }
- Ist dies ein festes format?
- Wie kann
CLR interpret sequence
parameter?
Follow-up-Fragen:
ein. Warum dekorieren wir Controllers,der Aktion oder der id innerhalb einer Klammer {}?
b. Gibt es eine übereinstimmung zwischen URL angeben und Standardwerte?
InformationsquelleAutor user3886602 | 2014-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu Grunde zu initialisieren, die route mit den default-Werten. Die Werte, die Sie übergeben Sie in
MapRoute
Methode verwandelt sich in einIDictionary<string, object>
für die spätere Suche.Nein, Sie können Sie weglassen oder hinzufügen, mehr Werte pro URL. Die Werte, die Sie angeben, werden Standardeinstellungen werden für die Suche verwendet.
Beispielsweise können Sie eine route name Suche wie folgt:
Indem Sie Sie in einem Wörterbuch (RouteValueDictionary um genau zu sein).
Kurze Antwort, es ist eine Konvention... lange Antwort, die als pro, MSDN, Auszüge aus MSDN-Artikel
Ja, die defaults Werte für die Platzhalter in der URL. Wenn Sie mehr Verzug, dann ist Platzhalter, es wird ignoriert. Der Standardwert wird verwendet, wenn ein Wert für diesen parameter nicht in der URL.
Weitere Informationen, dann werde ich Sie zu diesem hervorragenden MSDN-Artikel.
Hoffe, das hilft.
Ich habe follow-up-Fragen, die in deiner ursprünglichen Frage für andere Leser. Bitte siehe meine aktualisierte Antwort. Übrigens wussten Sie, Lesen Sie die MSDN-Artikel? Fandest du es nützlich?
Ja ich gehe über den link und sehr brauchbar.TThanks viel. Aber ich bin etwas irritiert über {} URL-Muster, ich habe versucht, "{controller}/{action}" und "{action}/{controller}" beiden funktionieren einwandfrei 🙂
Ja, Es funktioniert in beiden Fällen. Ihre URL-pattern nur sagen, wie viele Platzhalter wird es in der eingehenden Anfrage - url nach dem server-Namen. Position ist egal, solange es vorhanden ist, in der URL und standardmäßig den Wert für den entsprechenden Platzhalter. Ich schlage vor, versuchen mehr und Sie bekommen es bald.
Wenn ich verwirrt mit der route entspricht, verwende ich dieses tool. haacked.com/archive/2008/03/13/url-routing-debugger.aspx
InformationsquelleAutor SBirthare
Tut
new
Ausdruck nicht für MVC-5-Einschränkungen?InformationsquelleAutor Jenny