In einen meiner letzten HowTos ging es um die Mehrsprachigkeit in ASP.NET MVC Anwendungen. Dort hatte ich ein System empfohlen, welche über bestimmte Expressions die Resourcendatein auslesen. Es geht natürlich viel einfacher und eleganter: Einfach über Resources zugreifen.
Die erste Variante:
In der ersten Variante konnte ich so die Resourcendatein auslesen:
Global resource : <%=Html.Resource("Strings, GlobalResourceKey") %><br /> Local resource : <%=Html.Resource("LocalKey")%><br />
Schön ist das allerdings nicht wirklich.
Das Problem: Magic Strings.
Man hat irgendwelche Strings in den Views stehen. Man vertippt sich äußerst schnell und Intellisense (wenn sie denn mal in den MVC Views gehen sollte ;) ) ist auch nicht vorhanden.
Daher einfacher und eigentlich auch logisch: Zugriff direkt auf Resources
Ich weiß nicht warum es erst bei mir nicht funktioniert hat, aber man kann z.B. einfach so auf GlobalResourcen zugreifen:
Resources.Test.Foobar;
Wobei "Test" die Ressourcendatei ist und Foobar mein Key. Aus den MVC Views heraus funktioniert das mit Ressourcen, die in den App_GlobalResources liegen auch. Lokale Ressourcen kann man allerdings nicht auslesen. Warum auch immer.
Manchmal ist es einfacher als Gedacht. Neben den besseren Zugriffsmöglichkeiten, spart man sich die Viewengine und die Resourceextensions.
Weitere Links zum Thema Localization & ASP.NET MVC: