如何在JavaScript中访问嵌入式ASP.NET GlobalResources?

时间:2016-10-13 13:14:32

标签: javascript c#

我正在研究一个传统的ASP.NET项目,我正试图慢慢地按摩它的形状,但是如果不像巧克力手指套那样崩溃,我无法做出重大改变....

我试图为此找到一个解决方案,但由于术语的具体组合(“javascript”,“嵌入式”和/或“资源”)给我提供了如何嵌入.js的信息,因此失败了。文件...),以及它可能是一种奇怪的做事方式。

该项目利用App_GlobalResources进行可翻译的字符串,这些字符串用于C#代码,标记和一些JavaScript中。例如:

HTML:

Text="<%$Resources: Resources, MeasuresLabel %>"

JS:

setDialogTitle('summaryDialog', physicalElementName, Resources.Resources.Summary);

这一切都运行良好,直到我们开始使用NUnit进行一些集成测试。为了使Resources.resx可用于NUnit,我遵循了Scott Allen的suggestion,它适用于NUnit,但意味着上面的 Resources.Resources 未定义。

所以,我的问题是这个嵌入式文件,我如何让它可以访问JavaScript(或者有更好的方式让它可以用于NUnit)?

由于我希望以单独的.js文件访问它而不是在.aspx文件中的脚本标记内访问它,因此增加了复杂性。

修改 在看了一些之后,真正的挑战是在JS中访问的属性是静态的。由于这些引用的位置数量,为每个正在使用的字符串添加变量是不切实际的。

1 个答案:

答案 0 :(得分:0)

我认为JS文件不是通过ASP.NET引擎而是按原样提供,这就是为什么在你的情况下没有定义Resources.Resources.Summary,而在嵌入{{{ 1。}} .aspx文件中的标记。 我知道的唯一方法是将已使用的资源值存储在.aspx页面上的全局javascript变量中,然后在加载的JS文件中使用它们。