как сделать Локализацию для одного из свойств @Model в mvc3 - PullRequest
0 голосов
/ 15 марта 2012

Я начал работать над проектом MVC, и я столкнулся с некоторыми сценариями, когда я чувствую, что застрял. Мне нужно конвертировать существующий сайт MVC3 для работы на нескольких языках. Поскольку я новичок, я могу использовать неправильные слова / определения / ключевые слова для MVC3 при объяснении, поэтому, пожалуйста, держитесь за меня.

У меня есть один HeaderPage.cshtml, и к нему привязана модель представления с помощью

@model IHeaderPage

И выводит свойство этой модели:

<h3>@Model.HeaderName</h3>

Я вызвал это представление из MainPage.cshtml

@Html.Partial("HeaderPage")

Теперь в методе Controller's Action я изменяю свойство модели

objHeaderPage.HeaderName="Fill your Registeration details";

И когда я запускаю проект, я вижу текст «Заполните ваши регистрационные данные».

Теперь, как я могу изменить текстовое значение, то есть оно должно считываться из моего файла resx. Я уже создал файлы resx в папке App_LocalResources . Я слышал, что это можно сделать с помощью Display Attribute ... но как мне это сделать или есть какой-нибудь другой лучший способ?

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Этот должен ответить на ваш вопрос об использовании DisplayAttribute.

Я использую DisplayAttribute для каждого свойства моей ViewModel, но если вам приходится обрабатывать пользовательские сообщения, такие как "Записьне может быть сохранен из-за ошибки ... ", или что-то подобное, вы можете просто использовать

 objHeaderPage.HeaderName = Resources.ResourceMessageName; 

Фреймворк автоматически выберет правильную культуру.Я предпочитаю размещать все свои ресурсы в отдельных проектах, чтобы в случае необходимости развернуть только dll ресурсов, но вы также можете подумать о развертывании файлов resx для их редактирования непосредственно на рабочей машине.Я думаю, это зависит от того, что вы предпочитаете / нужно.

0 голосов
/ 15 марта 2012

использовать пространство имен System.ComponentModel.DataAnnotations во ViewModel.

[Display(Name="Fill your Registeration details")]
public string HeaderName{get;set;}

также вы можете использовать свой файл ресурсов. Просто обзор http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...