Ho uno sfondo nello sviluppo di software desktop e sto iniziando con l'apprendimento di ASP.NET MVC.String magiche in ASP.NET MVC
Nel mio HomeController predefinita ho l'azione Index, che ha il codice che assomiglia a questo:
if (!Request.IsAuthenticated)
return RedirectToAction("Login", "Account");
In altre parole, reindirizzare l'utente a "/ account/login". L'azione AccountController.Login gestirà quindi l'utente e lo rimanderà a HomeController una volta che avrà effettuato l'accesso con successo.
Questo codice mi odora, forse solo perché sono abituato a fare le cose in modo diverso nei software desktop. Cosa succede se cambio il nome dell'azione di login su "LogOn"? Cosa succede se rimuovo completamente AccountController e lo sostituisco con qualcos'altro? Introdurrò un nuovo bug ma non otterrò errori del compilatore, e probabilmente anche i miei test di unità non lo prenderanno. Poiché ho usato le stringhe per specificare i nomi di controller e di azione, il refactoring e la riprogettazione hanno più potenziale per violare il codice dappertutto.
Quello che vorrei è qualcosa di simile:
if (!Request.IsAuthenticated)
return RedirectToAction(() => AccountController.Login);
Comunque io non sono sicuro se questo è ancora possibile o se è il modo migliore per farlo.
Sono stupido o altre persone hanno avuto lo stesso problema? Cosa fai per aggirarlo?
Wow che è così utile. Spero/spero che lo integrino direttamente in MVC in futuro. Non vedo come usare così tante stringhe magiche possa essere accettabile in questi giorni. – DLeh