/ / Erstellen eines ASP.Net MVC3 ActionLink mit einem Bereich - asp.net-mvc, html.actionlink, asp.net-mvc-3-Bereiche

Erstellen eines ASP.Net MVC3 ActionLink mit einem Bereich - asp.net-mvc, html.actionlink, asp.net-mvc-3-Bereiche

ASP.Net MVC3 ist cool und alle, aber ich habe diese Frage mehr aus Neugier als Programmierungsprobleme. Angenommen, ich habe einen Bereich namens "Cosmos", in dem es einen "StarController" mit einer "Index" -Aktion gibt.

Wenn ich nun eine Aktionsverbindung zu dieser erstellen müsste, was ist der Unterschied zwischen diesen beiden Aussagen?

Html.ActionLink("Stars", "Index", "Stars", new { area = "Cosmos" }, null)

und

Html.ActionLink("Stars", "Index", "Cosmos/Stars")

Nach dem Aussehen sind sie genau das Gleiche. Wenn es tatsächlich dasselbe tut, was nützt der anonyme Typ {area = "Kosmos"}?

Antworten:

3 für die Antwort № 1

Im zweiten Beispiel setzen Sie die controllerName Argument zu Cosmos/Stars was falsch ist. Ein Controller kann nicht auf diese Weise aufgerufen werden. Es erzeugt das korrekte Ergebnis, weil der Helfer das Argument einfach unverändert verwendet, aber Sie haben angenommen, dass Ihre Routen einen bestimmten Stil haben. In dem Moment, in dem Sie Ihre Routing-Definition ändern, generiert dieser Link weiterhin das gleiche Markup, das falsch sein könnte. Im ersten Beispiel verlassen Sie sich nicht mehr auf ein fest codiertes URL-Muster. Es wird immer die richtige URL generieren, egal wie Ihre Routen und Bereiche konfiguriert sind.