Dovrei sostituire uno schema d'incordatura in asp.net mvc utilizzando un viewengine personalizzato?

StackOverflow https://stackoverflow.com/questions/2543055

Domanda

Hai un sito ASP.NET MVC che è localizzato. La funzionalità di localizzazione aggiunge la lingua ID a due cifre per l'URL, ad esempio, / Es / Pagina. Se nessun ID della lingua si trova nella URL, il sito passa alla cultura browser dell'utente. Tutto va bene. Tuttavia, i collegamenti ipertestuali del sito, una miscela di tag href hard-coded, actionlinks, ecc, non includono l'ID lingua di base, in modo da quando si fa clic attraverso il sito della cultura set è perso, e il sito ritorna alla cultura browser dell'utente .

Il mio (pigro) il pensiero è quello di sostituire tutti i valori href, che non puntano a un sito esterno, con l'URL localizzata (ad esempio includono le / es /). In caso contrario, dovranno essere aggiornati tutti i link del sito di includere il codice della cultura.

È semplicemente stupido? Oppure, ragionevole, e dovrebbe essere fatto utilizzando un motore di visualizzazione personalizzata, o qualche altro metodo?

Nessuna soluzione corretta

Altri suggerimenti

La mia risposta è (attualmente):

L'applicazione ha un controller di base, ci ho aggiunto:

if (PathLanguageCode == "" && requestContext.HttpContext.Session["LanguageCode"] != null && requestContext.HttpContext.Request.RequestType == "GET")
{
    requestContext.HttpContext.Response.Redirect("/" + requestContext.HttpContext.Session["LanguageCode"] + requestContext.HttpContext.Request.RawUrl);
}

Questo esempio non mostra come viene definita la variabile PathLanguageCode, ma dovrebbe almeno sufficiente a mostrare come questo può essere gestito centralmente, senza sostituire valori di stringa.

L'unico aspetto negativo di questo approccio, che posso vedere, è che il sito non è molto amichevole per i motori di ricerca, ecc, in quanto si finisce per fare un sacco di reindirizzamenti.

Se volete potete guardare il mio approccio che abbiamo preso. Si parla di mettere la cultura nell'URL. Speranza che aiuta!

Colta View Engine per MVC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top