Доступ к файлам ресурсов в MVC 3 - PullRequest
6 голосов
/ 15 апреля 2011

Я хочу получить доступ к паре ключ / значение из моих файлов ресурсов в сценариях java и представлениях .cshtml.Для некоторого статического контента в моем cshtml я не хочу создавать свойство в моей модели, поэтому было бы неплохо, если бы я мог напрямую обращаться к файлам ресурсов.

Ответы [ 3 ]

15 голосов
/ 11 мая 2011

Вы можете создать файл resx и установить его свойства на public , как описано здесь .

Тогда на вашем cshtml вы можете использовать:

@Resources.ResNameHere.Property

Для использования на javascript просто отобразите его в script блоке

<script>
    var stringFromResource = "@Resources.ResNameHere.Property";
</script>

Вы также можете реализовать метод расширения до Html и читать ресурс из любого места, даже из базы данных, есливам нужно.

public static MvcHtmlString Resource<T>(this HtmlHelper<T> html, string key)
{
    var resourceManager = new ResourceManager(typeof(Website.Resources.ResNameHere));

    var val = resourceManager.GetString(key);

    // if value is not found return the key itself
    return MvcHtmlString.Create(String.IsNullOrEmpty(val) ? key : val);
}

Тогда вы можете позвонить как

@Html.Resource("Key")
0 голосов
/ 01 ноября 2012

Давайте рассмотрим следующую ситуацию, когда мы хотим получить доступ к паре ключ / значение из файлов ресурсов в представлениях JavaScript и .cshtml.

Внутри .cshtml

@Html.ActionLink("New Contact", null, null, null, new { id = "general", Href = "#", @Newtitle = @Resources.General.Newtitle })

где файл ресурса содержит следующие данные

Name      Value
----      -----
Newtitle  New title Value

Теперь вы готовы использовать данные вашего ресурса

Внутри JavaScript

$('#general').click(function (evt) {
    alert($(this).attr("Newtitle"));
    evt.preventDefault();
});

Спасибо.

0 голосов
/ 15 апреля 2011

Вы должны иметь доступ к ресурсу из представления Razor через сгенерированный прокси-класс. Это не работает для вас?

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