Как локализовать View с помощью службы локализации в MVC3 - PullRequest
1 голос
/ 25 августа 2011

Я разрабатываю приложение, которое использует ASP.NET MVC3 для внешнего интерфейса, который взаимодействует с уровнем обслуживания через интерфейсы. Все интерфейсы / сервисы внедряются в контроллеры через инъекцию и конструктор.

Я хотел бы направить всю локализацию через службу определения местоположения, которую предоставляет ninject.

Достаточно просто на стороне контроллера, я добавил функцию Localize в базовый класс контроллера и добавил ILocalizeService в конструктор, и вот, готово. В любое время, когда мне нужно локализовать строку, я могу просто вызвать функцию локализации, которая, в свою очередь, вызывает сервис.

Теперь я пытаюсь найти чистый способ сделать это на стороне просмотра. У меня есть базовый класс View, который предоставляет функцию Localize, как в контроллере, так что я могу передать любой статический текст в представление, но я не могу найти чистый способ получить экземпляр моей службы локализации. Я читал многочисленные посты о том, что DI в представлении является плохой практикой, но в этом случае я думаю, что базовое представление является наиболее чистым местом для централизации локализации текста в представлении (конечно, я был бы открыт для любого другого варианта, который не требует, чтобы я передавал свое ядро)

Любые примеры, на которые кто-то мог бы указать мне, или совет, как сделать это чисто.

1 Ответ

2 голосов
/ 26 августа 2011

Ninject позволяет вводить свойства в представления.Это плохая практика, хотя.Вы должны делать как можно меньше в представлении.

Я думаю, что основная проблема заключается в том, что вы используете пользовательскую службу локализации вместо того, чтобы использовать один из стандартных способов использования файлов ресурсов или пользовательских представлений дляязык.См. этот отличный пост в блоге Скотта Хансельмана

Или есть какая-то особая причина для собственного способа борьбы с локализацией?

...