如何从.resx文件获取字符串到.js文件[关闭]

问题描述 投票:6回答:4

我想用两种不同的语言显示警告信息。我正在使用asp.net App_GlobalResources。我可以在script.js文件中使用它吗?

javascript asp.net resx app-globalresources
4个回答
8
投票

您无法从javascript文件直接调用RESX文件中的资源。

但是,您可以创建一个部分视图(如果您使用的是MVC),您可以从中访问所有这些资源。之后,您可以在页面中包含该部分内容。

例如,您可以执行以下操作:

<script>

var Resources = {

  Name: '@Resources.tags.Name',
  Surname: '@Resources.tags.Surname',

};

</script>

在此之后,您可以在您需要的页面中包含此页面,并使用以下命令从javascript访问这些资源:

Resources.Name

如果您没有使用MVC,请让我知道如何在ASP.NET中完成它。

如果您有任何疑问,请说出来。

对于WebForms

如果您使用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>

3
投票

一种快速方法是您可以提前在aspx文件中设置Javascript变量值。

<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以在客户端上访问它们。


0
投票

试试这个:

它非常简单

<script type="text/javascript">
    var resources_en = {
        welcome_en : '<%= HttpContext.GetGlobalResourceObject("ResourceFileName", "yourMsg") %>';
    }
    alert(welcome_en);
</script>

-1
投票

它看起来像这样

 document.getElementById("btnAdd").value = '@Resources.Admin.AddAdmin';
© www.soinside.com 2019 - 2024. All rights reserved.