我想用两种不同的语言显示提醒信息。 我使用的是asp.net App_GlobalResources 。我可以在script.js文件中使用它吗?
答案 0 :(得分: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>
答案 1 :(得分: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以在客户端上访问它们。
答案 2 :(得分:0)
试试这个:
非常简单
<script type="text/javascript">
var resources_en = {
welcome_en : '<%= HttpContext.GetGlobalResourceObject("ResourceFileName", "yourMsg") %>';
}
alert(welcome_en);
</script>
答案 3 :(得分:-1)
它看起来像这样
document.getElementById("btnAdd").value = '@Resources.Admin.AddAdmin';