Справочная информация:
Я работаю над сайтом, который будет доступен в нескольких регионах.Каждый регион может иметь свой язык или разные варианты написания для одного и того же языка.Мы планируем использовать файл меток XML, который будет содержать весь текст, который будет отображаться для любого региона.
Таким образом, regionA загрузит RegionALabels.xml, и весь его текст будет взят из этого.RegionB загрузит RegionBLabels.xml и т. Д.
Я подумываю реализовать это путем структурирования XML-файла таким образом, чтобы он следовал той же структуре, что и мое приложение.Например,
<Base> <!--BaseController-->
<Home> <!--HomeController-->
<HomePartial1>
<lblFirstName>text for label with ID lblFirstName</lblFirstName>
<lblLastName>text for label with ID lblLastName</lblLastName>
</HomePartial1>
<HomePartial2>
<!--a bunch of labels-->
</HomePartial2>
</Home>
<Accounts>
<AccountsPartial1>
<!--a bunch of labels-->
</AccountsPartial1>
<AccountsPartial2>
<!--a bunch of labels-->
</AccountsPartial2>
</Accounts>
</Base>
Причина, по которой я хочу сделать это таким образом, заключается в том, что я хочу применить Соглашение над Конфигурацией, поэтому становится неявным, где найти текст для любого данного частичного представления.
Используя эту структуру, я могу использовать Linq-to-XML, чтобы выделить текст, относящийся к частичному представлению, которое я собираюсь визуализировать.Например, если я рендерим частичное представление HomePartial1, я могу получить метки, связанные с этим частичным представлением, например:
var nodes = from f in
(from res in this.XmlConfiguration.Descendants("Base")
select res).Descendants("Home")
select f;
var HomePartial1Labels = nodes.Elements("HomePartial1").ToList();
Вопрос:
В таком случае, в сущности, я хочу спросить, может ли кто-нибудь указать на очевидные дыры в этом подходе, прежде чем я попытаюсь реализовать это?Может ли кто-нибудь, кто имел дело с этим, предложить что-то лучше?
также , у меня есть одно конкретное требование для частичного просмотра с несколькими вкладками, каждая из которых должна отображать текст иряд результатов, связанных с этой вкладкой.Например, у меня есть 3 вкладки:
Fund
Company
Group
Если кто-то выполняет поиск, на вкладках должно отображаться количество результатов, которые поисковый запрос возвращает для вкладки, поэтому, если я ищу «JP Morgan», онистать:
Fund (10) // 10 funds contain the name 'JP Morgan'
Company (12) // 12 companies contain the name 'JP Morgan'
Group (15) // 15 groups contain the name 'JP Morgan'
Для того, чтобы в тексте метки содержался текст «Фонд», «Компания» и «Группа», я также должен указать «(» и «)»Это означает, что я думаю, что мне придется использовать заполнитель и заменить его фактическим значением при рендеринге частичного.Так что XML начнет выглядеть так:
<Base> <!--BaseController-->
<Home> <!--HomeController-->
<Tabs>
<lblFundTab>Funds (#value#)</lblFundTab>
<lblCompanyTab>Company (#value#)</lblCompanyTab>
<lblGroupTab>Group (#value#)</lblGroupTab>
</Tabs>
</Home>
</Base>
, но я думаю, что это начнет выглядеть грязно и немного хакерски.Может кто-нибудь предложить что-то лучше?Спасибо.