#javascript #asp.net-mvc-3 #resources
#javascript #asp.net-mvc-3 #Ресурсы
Вопрос:
Я хочу получить доступ к паре ключ / значение из моих файлов ресурсов в представлениях java script и .cshtml. Для некоторого статического содержимого в моем cshtml я не хочу создавать свойство в моей модели, поэтому было бы неплохо, если бы я мог напрямую обращаться к файлам ресурсов.
Ответ №1:
Вы можете создать файл 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")
Ответ №2:
Вы должны иметь возможность получить доступ к ресурсу из Razor view через сгенерированный прокси-класс. У вас это не работает?
Комментарии:
1. Не уверен в этом. не могли бы вы, пожалуйста, пролить на это больше света. мои файлы ресурсов находятся в папке App_GlobalResources.
2. Не могли бы вы предоставить дополнительную информацию? Какие файлы у вас есть в папке App_GlobalResources, как вы пытаетесь получить доступ к ресурсам и какой сбой вы видите?
Ответ №3:
Давайте рассмотрим следующую ситуацию, когда мы хотим получить доступ к паре ключ / значение из файлов ресурсов в представлениях 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();
});
Спасибо.