/ / Vytvorenie ASP.Net MVC3 ActionLink s oblasťou - asp.net-mvc, html.actionlink, asp.net-mvc-3-areas

Vytvorenie ASP.Net MVC3 ActionLink s oblasťou - asp.net-mvc, html.actionlink, asp.net-mvc-3-areas

ASP.Net MVC3 je v pohode a okrem toho mám túto otázku na zvedavosť viac než na problémy s programovaním. Povedzme, že mám oblasť s názvom „Kozmos“, v ktorej je „StarController“ s akciou „Index“.

Ak by som na to musel vytvoriť akčný odkaz, aký je rozdiel medzi týmito dvoma tvrdeniami?

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

a

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

Podľa toho, čo vyzerá, sú to isté. Ak skutočne ide o to isté, aké je použitie anonymného typu {area = "Cosmos"}?

odpovede:

3 pre odpoveď č. 1

V druhom príklade nastavíte controllerName argument pre Cosmos/Stars čo je zle. Kontrolér sa nedá takto nazvať. Vytvára správny výsledok, pretože pomocník jednoducho použije argument, ako je, ale predpokladali ste, že vaše trasy budú mať určitý štýl. V okamihu, keď zmeníte svoju definíciu smerovania, tento odkaz bude naďalej generovať rovnaké označenie, ktoré by mohlo byť nesprávne. V prvom príklade sa už nespoliehate na žiadne pevne kódované vzory adries URL. Vždy vygeneruje správnu webovú adresu bez ohľadu na to, ako sú nakonfigurované vaše trasy a oblasti.