Дополнительная информация в ASP.Net MVC View - PullRequest
0 голосов
/ 14 июня 2010

Я пытаюсь реализовать пользовательский языковой сервис на веб-странице MVC 2. У меня есть интерфейс IResourceDictionary, который предоставляет несколько методов для доступа к ресурсам по культуре. Это потому, что я хочу избежать статических классов ресурсов .Net.

Проблема в доступе к выбранному IResourceDictionary из представлений. Я размышлял об использовании данного ViewDataDictionary, создавая базовый контроллер, от которого наследуются все мои контроллеры, который добавляет мой IResourceDictionary в ViewData перед выполнением каждого действия.

Тогда я мог бы назвать свой словарь ресурсов следующим образом:

(ViewData["Resources"] as IResourceDictionary).GetEntry(params);

По общему признанию, это очень многословно и безобразно, особенно во встроенном коде, который мы рекомендуем использовать в MVC. Сейчас я склоняюсь к статическому доступу к классу

ResourceDictionary.GetEntry(params);

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

Каков предпочтительный способ доступа к моему ResourceDictionary из представлений? Все мои взгляды будут использовать этот словарь.

1 Ответ

1 голос
/ 14 июня 2010

Расширение HtmlHelper, которое позволит вам вызывать ваш метод следующим образом:

<%: Html.GetEntry(params) %>

Кажется, довольно хорошее решение

...