Как получить строку из файла.resx в файл.js
Я хочу показать предупреждение на двух разных языках. Я использую asp.net App_GlobalResources. Могу ли я использовать его в моем файле script.js?
4 ответа
Вы не можете напрямую обращаться к ресурсам в файле RESX из файлов JavaScript.
Однако вы можете создать частичное представление (в случае, если вы используете MVC), из которого вы можете получить доступ ко всем этим ресурсам. После этого вы можете включить эту часть в свои страницы.
Например, вы могли бы сделать частичное, в котором вы бы имели:
<script>
var Resources = {
Name: '@Resources.tags.Name',
Surname: '@Resources.tags.Surname',
};
</script>
После этого вы можете включить эту страницу в нужные вам страницы и получить доступ из javascript к этим ресурсам, используя:
Resources.Name
Если вы не используете MVC, пожалуйста, дайте мне знать, как это сделать в ASP.NET.
Если у вас есть какие-либо сомнения, пожалуйста, скажите.
Для веб-форм
Если вы используете WebForms, вы можете использовать пользовательский элемент управления, в котором вы будете настраивать JavaScript, который будет вставлен на страницу.
После этого включите этот пользовательский элемент управления на своей странице (желательно, чтобы мастер сделал его доступным через весь ваш веб-сайт), и вы сможете получить к нему доступ.
Пользовательский элемент управления будет выглядеть так:
public partial class resources : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
LiteralControl jsResource = new LiteralControl();
jsResource.Text = "<script type=\"text/javascript\">";
jsResource.Text += "var Resources = {";
jsResource.Text += "Name: '" + Resources.Resource.Name + "',";
jsResource.Text += "Surname: '" + Resources.Resource.Surname + "',";
jsResource.Text += "};";
jsResource.Text += "</script>";
Page.Header.Controls.Add(jsResource);
}
}
Затем вы бы включили этот элемент управления на своей странице:
<uc1:resources runat="server" ID="resources" />
И вы можете просто получить доступ к вашему JavaScript, сделав так:
<script>
alert(Resources.Name);
alert(Resources.Surname);
</script>
Быстрый способ заключается в том, что вы можете заранее установить значения переменных Javascript в файле aspx.
<script type="text/javascript">
var alertMessage = '<%=Resources.YourResourceFile.alertMessage%>';
...
...
alert(alertMessage);
</script>
Это отобразит значение ресурса в переменной alertMessage, и вы можете использовать его там, где это необходимо.
-
Вы также можете получить доступ ко всем переменным файла ресурсов на стороне клиента
<script type="text/javascript">
var resources_en = {
welcome_en : '<%= Resources.testResources_en.Welcome %>'
}
alert(welcome_en);
</script>
Добавьте все необходимые переменные ресурса в resources_en для доступа к ним на клиенте.
Попробуй это:
Это очень просто
<script type="text/javascript">
var resources_en = {
welcome_en : '<%= HttpContext.GetGlobalResourceObject("ResourceFileName", "yourMsg") %>';
}
alert(welcome_en);
</script>
Это выглядит так
document.getElementById("btnAdd").value = '@Resources.Admin.AddAdmin';