Po prostu nieco rozszerzam mój this question.Jak zrobić lokalizację dla treści pochodzących z @ Html.LabelFor() w mvc3
Mam moją App_LocalResources w mojej aplikacji internetowej MVC (nie mam go w osobnej bibliotece dll).
Mam mój model w innym zestawie. W modelu mam 2 klas Country
i City
:
public class Country: MyContainer
{
public City city {get;set;}
}
public class City
{
public CityName {get;set;}
}
public class MyContainer
{
public Cid {get;set;}
}
Więc w moim metody działania utworzyć i przekazać obiekt z kraju mojego viewmodel.
I w widoku używać to:
@Html.LabelFor(mdl=>mdl.City.CityName)
@Html.LabelFor(mdl=>mdl.Cid)
Tak to działa dobrze i etykieta z tekstem są świadczone w języku angielskim.
Ale jak mogę to zmodyfikować, aby odczytał tekst z moich plików zasobów w mojej aplikacji internetowej?
Dziękuję Darin za odpowiedź, mam ten kawałek kodu. Ale problem polega na tym, że moje klasy Country, City i MyContainer są w innym projekcie (o nazwie Location.Model). A mój plik zasobów znajduje się w moim projekcie aplikacji webowej mvc3. Wydaje mi się, że Location.Model jest autogenerowanym kodem, bo w plikach cs znajduje się komentarz " // Ten kod został wygenerowany z szablonu." Auto-generated>, a także ma jakiś plik .tt w tym. Pomóż mi dowiedzieć się, gdzie i jak robię zmiany. Czy muszę oddzielić projekt Moje zasoby ... proszę o pomoc .. –
thinkmmk
@thinkmmk, nie powinieneś przekazywać swoich autogenerowanych modeli swoim poglądom. Przypuszczam, że jest to jakiś autogenerowany model domeny EF. Zawsze powinieneś definiować modele widoku, które są klasami specjalnie zaprojektowanymi dla danego widoku. –
Rozumiem, ale ten projekt wydaje się dość złożony i rozległy. Jak więc muszę iść naprzód, wprowadzając minimalne zmiany. Czy muszę utworzyć nowy obiekt nowej klasy i przekazać go jako model? Ale chodzi o to, że stworzy duplikat klasy. – thinkmmk