Non è possibile avere più nomi per la stessa azione. Saranno diverse azioni. Questo è il modo in cui funziona il mvc. Mabe è meglio implementare il comportamento descritto con il routing.
routes.MapRoute("Lang1RouteToController1Action1",
"Lang1Controller/Lang1Action/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("Lang2RouteToController1Action1",
"Lang2Controller/Lang2Action/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Naturalmente dovrete creare molti percorsi, ma si può fare file di configurazione o negozio di instradamento dei dati nel database, e appena li creare in loop all'avvio dell'applicazione. Comunque penso che sia meglio quindi creare metodi diversi, perché se vuoi aggiungere un'altra lingua dovrai trovare azioni su tutti i controller e ricompilare il codice. Ma in caso di percorsi e file di configurazione - non diventa così difficile. La seconda cosa è l'estensione Html.ActionLink ("Home", "Index", "Home") - dovrai implementare la tua per restituire il link di azione localizzato.
fonte
2010-04-26 07:55:35
Non potresti impostare Thread.CurrentThread.CurrentCulture, Thread.CurrentThread.CurrentUICulture invece? http://msdn.microsoft.com/en-us/library/bz9tc508.aspx –