Javascript 如何将字符串从.resx文件转换为.js文件

Javascript 如何将字符串从.resx文件转换为.js文件,javascript,asp.net,resx,app-globalresources,Javascript,Asp.net,Resx,App Globalresources,我想用两种不同的语言显示警报消息。 我正在使用asp.netApp\u GlobalResources。我可以在script.js文件中使用它吗?您不能从javascript文件直接调用RESX文件中的资源 但是,您可以创建一个局部视图(如果您使用的是MVC),从中可以访问所有这些资源。此后,您可以在页面中包含该部分 例如,您可以执行一个分部,其中您将: <script> var Resources = { Name: '@Resources.tags.Name', Su

我想用两种不同的语言显示警报消息。
我正在使用asp.netApp\u GlobalResources。我可以在script.js文件中使用它吗?

您不能从javascript文件直接调用RESX文件中的资源

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

例如,您可以执行一个分部,其中您将:

<script>

var Resources = {

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

};

</script>
如果您不使用MVC,请让我知道如何在ASP.NET中使用MVC

如果你有任何疑问,请说

用于网络表单

在使用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);

    }
}
公共部分类资源:System.Web.UI.UserControl
{
受保护的无效页面加载(对象发送方、事件参数e)
{
LiteralControl jsResource=新建LiteralControl();
jsResource.Text=“”;
jsResource.Text+=“var Resources={”;
jsResource.Text+=“名称:”+Resources.Resource.Name+“,”;
jsResource.Text+=“姓氏:”+Resources.Resource.lasname+“,”;
jsResource.Text+=“};”;
jsResource.Text+=“”;
Page.Header.Controls.Add(jsResource);
}
}
然后将该控件包括在页面中:

<uc1:resources runat="server" ID="resources" />

通过这样做,您可以简单地访问javascript:

<script>
    alert(Resources.Name);
    alert(Resources.Surname);
</script>

警报(Resources.Name);
警报(参考资料,姓氏);

一个快速的方法是,您可以预先在aspx文件中设置Javascript变量值

<script type="text/javascript">
    var alertMessage = '<%=Resources.YourResourceFile.alertMessage%>';
    ...
    ...
    alert(alertMessage);
</script>

var-alertMessage='';
...
...
警报(警报消息);
这将在alertMessage变量中呈现资源值,您可以在需要时使用它

--
您也可以使用此工具访问客户端上的所有资源文件变量

<script type="text/javascript">
    var resources_en = {
        welcome_en : '<%= Resources.testResources_en.Welcome %>'
    }
    alert(welcome_en);
</script>

var资源\u en={
欢迎光临:''
}
警惕(欢迎);
将所有必需的资源变量添加到资源中,以便在客户端访问它们。

尝试以下操作:

这很简单

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

var资源\u en={
欢迎来到这里;
}
警惕(欢迎);
它看起来像这样


document.getElementById(“btnAdd”).value='@Resources.Admin.AddAdmin'嗨,Jesús María,我没有使用MVC。谢谢,我想从.js文件本身访问它。因为我在这个脚本文件中有许多警报消息。我想根据上下文用英语/德语展示它们。我的问题是,如果我将这些消息放在resx文件中,并通过提供resx文件的名称和条目的“名称”,我可以在.js本身中检索“值”吗???。我想到的唯一技巧是,您可以从服务器生成js并将其发送到客户端。除此之外,我不知道从js文件访问资源的任何其他方式。很抱歉没有提供更多帮助。我想从.js文件本身访问它。因为我在这个脚本文件中有许多警报消息。我想根据上下文用英语/德语展示它们。我的问题是,如果我将这些消息放在resx文件中,并通过提供resx文件的名称和条目的“名称”,我可以在.js本身中检索“值”吗???。这就是你要做的,它是一致的。问题是外部javascript文件。如果不使用say
隐藏字段
或包含服务器端生成的.resx内容的
javascript文件
,则无法访问.resx文件,请改用这种方式。
<script type="text/javascript">
    var resources_en = {
        welcome_en : '<%= HttpContext.GetGlobalResourceObject("ResourceFileName", "yourMsg") %>';
    }
    alert(welcome_en);
</script>