Ich versuche, mein vorhandenes ASP.NET MVC 5 Projekt zu MVC 6 vNext Projekt zu migrieren, während ich in der Lage gewesen bin, die meisten Probleme zu lösen und zu lösen, finde ich keine Dokumentation zur Verwendung der RESX-Ressource in MVC-Dateien für die Lokalisierung 6MVC 6: Wie benutzt man RESX-Dateien?
Meine Viewmodel verwenden Aussagen wie
[Required(ErrorMessageResourceType = typeof(Resources.MyProj.Messages), ErrorMessageResourceName = "FieldRequired")]
das funktionierte in MVC 5 in Ordnung, solange die RESX richtig und die Zugriffsmodifikatoren enthalten war wurden richtig eingestellt, aber es scheint nicht zu in einem vNext-Projekt arbeiten Weiß jemand, wie RESX in MVC 6 vNext-Projekten verwendet werden kann?
Ich habe ein paar Posts hier und auf der GIT-Hub-Site gesehen, die sagen, dass die Lokalisierungsstory für ASP.NET 5/MVC 6 komplett ist, aber ich finde kein anständiges Beispiel, wo die Resource-Strings verwendet wurden.
dem Code gibt mir über einen Fehler
CS0246 Fehler der Art oder der ‚Ressourcen‘ Namespace-Namen nicht gefunden werden konnte (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)
Edit: Changed Text klarstellen, dass ich für die Umsetzung der Lokalisierung in vNext (MVC 6) Projekte, ich bin in der Lage, um es in MVC funktioniert 5.
Edit 2 Suche: die Lokalisierung Bit ein erhielt Arbeits Nachdem ich die Antwort von Mohammed umgesetzt habe, stehe ich jetzt vor einem neuen Fehler.
Sobald ich Fügen Sie
"Microsoft.AspNet.Localization": "1.0.0-beta7-10364",
"Microsoft.Framework.Localization": "1.0.0-beta7-10364",
Pakete und fügen Sie die folgende Zeile in ConfigureServices im Startup.cs
services.AddMvcLocalization();
Ich bekomme einen neuen Fehler, wenn der folgende Code ausgeführt zu werden.
public class HomeController : Controller
{
private readonly IHtmlLocalizer _localizer;
public HomeController(IHtmlLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
....
Fehler:
Eine nicht behandelte Ausnahme beim Verarbeiten der Anforderung.
InvalidOperationException: Kann Dienst für Typ 'Microsoft.Framework.Runtime.IApplicationEnvironment' zu lösen, während versucht 'Microsoft.Framework.Localization.ResourceManagerStringLocalizerFactory' zu aktivieren. Microsoft.Framework.DependencyInjection.ServiceLookup.Service.CreateCallSite (Serviceprovider Anbieter, ISet`1 callSiteChain)
Wenn es eine Abhängigkeit herauszufinden Cant ich bin fehlt oder es gibt ein Problem in dem Code
Bearbeiten 3:
Für alle, die immer noch nach einer Lösung suchen. Zu diesem Zeitpunkt können Sie den Code in der Antwort von Muhammad Rehan Saee verwenden, um Lokalisierungsunterstützung in Ihrem CSHTML zu erhalten.Doch die Geschichte Lokalisierung bei der Validierung zu ermöglichen Attribute ist noch nicht geschehen (zum Zeitpunkt dieser edit: 08/Sep/2015) Werfen Sie einen Blick auf das Thema auf der GitHub Website für mvc unter:
https://github.com/aspnet/Mvc/issues/2766#issuecomment-137192942
PS: Um die InvalidOperationException zu beheben ich habe die folgende
Betrachtet man alle Abhängigkeiten als beta7- * und Clearing alle Inhalte meiner C: \ Benutzer \ .dnx \ packages wurde der Fehler beseitigen.
Details zu der Frage, die ich angesprochen:
https://github.com/aspnet/Mvc/issues/2893#issuecomment-127164729
Edit: 25/Dec/2015
Dies funktioniert schließlich in MVC 6 jetzt.
Schrieb eine schnelle Blog-Post hier: http://pratikvasani.github.io/archive/2015/12/25/MVC-6-localization-how-to/
@Coulton: Ich bin in der Lage RESX zu verwenden, in meinem vorhandenen MVC 5 Projekt wie Sie erwähnten in der Link oben, mein Problem ist, dass nicht funktioniert in MVC 6 mit den neuen vNext-Projekten. Ich suche nach einer Möglichkeit, mit den vorhandenen Resx-Dateien in MVC 6 – Pratik