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ď č. 1V 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.