Sto provando a migrare il mio progetto ASP.NET MVC 5 esistente in MVV 6 progetto vNext, mentre sono riuscito a risolvere e risolvere gran parte dei problemi, non riesco a trovare alcuna documentazione su come utilizzare la risorsa RESX file per la localizzazione in MVC 6MVC 6: come utilizzare i file RESX?
miei ViewModels stanno usando affermazioni come
[Required(ErrorMessageResourceType = typeof(Resources.MyProj.Messages), ErrorMessageResourceName = "FieldRequired")]
Questo ha funzionato bene in MVC 5 fino a quando il RESX è stato incluso correttamente e i modificatori di accesso sono stati fissati in modo corretto, ma doesnt sembrano lavoro in un progetto vNext Qualcuno sa come può essere usato RESX nei progetti MVC 6 vNext?
Ho visto alcuni post qui e sul sito dell'hub GIT che dicono che la storia di localizzazione per ASP.NET 5/MVC 6 è completa ma non trovo alcun campione decente in cui sono state utilizzate le stringhe di risorse.
Utilizzando il codice di cui sopra mi dà un errore di
CS0246 errore non è stato trovato Il tipo o dello spazio dei nomi il nome 'Risorse' (che le manca un un riferimento all'assembly direttiva using o?)
Edit: Modificato il testo per chiarire che sto cercando per l'attuazione della localizzazione in vNext (MVC) 6 progetti, sono in grado di farlo funzionare in MVC 5.
Edit 2: ha ottenuto il bit localizzazione lavorando un Dopo aver implementato la risposta di Mohammed, sono bloccato da un nuovo errore ora.
Una volta ho includono
"Microsoft.AspNet.Localization": "1.0.0-beta7-10364",
"Microsoft.Framework.Localization": "1.0.0-beta7-10364",
pacchetti e aggiungere la seguente riga nel ConfigureServices nel Startup.cs
services.AddMvcLocalization();
ottengo un nuovo errore quando si sta eseguito il codice seguente.
public class HomeController : Controller
{
private readonly IHtmlLocalizer _localizer;
public HomeController(IHtmlLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
....
errore: Si è verificato
Eccezione non gestita durante l'elaborazione della richiesta.
InvalidOperationException: Impossibile risolvere il servizio per il tipo 'Microsoft.Framework.Runtime.IApplicationEnvironment' durante il tentativo di attivare 'Microsoft.Framework.Localization.ResourceManagerStringLocalizerFactory'. Microsoft.Framework.DependencyInjection.ServiceLookup.Service.CreateCallSite (ServiceProvider fornitore, ISet`1 callSiteChain)
riesco a capire se una dipendenza che mi manca o c'è un problema nel codice
Modifica 3:
A chiunque sia ancora alla ricerca di una soluzione. A questo punto, è possibile utilizzare il codice nella risposta tramite Muhammad Rehan Saee per ottenere il supporto per la localizzazione nel proprio CSHTML.Tuttavia la storia per consentire la localizzazione in validazione attributi non è ancora finito (al momento di questa modifica: 08/Set/2015) Date un'occhiata la questione sul sito GitHub per MVC qui di seguito:
https://github.com/aspnet/Mvc/issues/2766#issuecomment-137192942
PS: Per risolvere l'InvalidOperationException ho fatto la seguente
Prendendo tutte le dipendenze come il beta7- * e cancellare tutti i contenuti della mia C: \ Users \ \ .dnx pacchetti sono liberato dell'errore.
dettagli sulla questione ho sollevato:
https://github.com/aspnet/Mvc/issues/2893#issuecomment-127164729
Edit: 25/Dic/2015
Questa è finalmente lavorando in MVC 6 ora.
ha postato sul blog veloce qui: http://pratikvasani.github.io/archive/2015/12/25/MVC-6-localization-how-to/
@Coulton: Sono in grado di utilizzare RESX nel mio progetto di 5 MVC esistente come lei ha citato nella il link sopra, il mio problema è che non funziona in MVC 6 con i nuovi progetti vNext. Sto cercando un modo per lavorare con i file Resx esistenti in MVC 6 – Pratik