web-dev-qa-db-ja.com

.resxファイルから.jsファイルに文字列を取得する方法

2つの異なる言語でアラートメッセージを表示したい。私はasp.netを使用していますApp_GlobalResources。 script.jsファイル内で使用できますか?

6
Manu A N

JavascriptファイルからRESXファイル内のリソースを直接呼び出すことはできません。

ただし、(MVCを使用している場合)部分ビューを作成して、そこからこれらすべてのリソースにアクセスすることもできます。その後、その部分をページ内に含めることができます。

たとえば、次のようなパーシャルを実行できます。

<script>

var Resources = {

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

};

</script>

この後、次を使用して、必要なページにこのページを含め、JavaScriptからこれらのリソースにアクセスできます。

Resources.Name

MVCを使用していない場合は、ASP.NETでの使用方法を確認するためにお知らせください。

疑問がある場合は、言ってください。

Webフォームの場合

WebFormsを使用する場合は、ユーザーコントロールを使用して、ページに挿入されるようにJavaScriptを構成します。

その後、そのユーザーコントロールをページに含め(できれば、すべてのWebサイトから利用できるようにするマスター)、アクセスできるようになります。

ユーザーコントロールは次のようになります。

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>
8
Jesús María

手っ取り早い方法は、事前に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に追加して、クライアントでそれらにアクセスします。

3
Haseeb Asif

これを試して:

その非常にシンプル

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

このように見える

 document.getElementById("btnAdd").value = '@Resources.Admin.AddAdmin';
0