динамически заменить строку в файле ресурсов - PullRequest
0 голосов
/ 19 марта 2020

На моей странице cs html у меня есть одно диалоговое окно начальной загрузки, подобное этому

bootbox.dialog({
                  title: "Addresstitle " + ADDRESS + " save",
                  message: "you will be send to " + fromaddress + "for verification dear" + customer,
                  buttons: {
                   success: {
                                label: "Next,
                                className: "btn btn-success",
                                callback: function(){
                                      //some logic
                                }
                            }
                        }
                    });

Я создам 2 строки ресурса в файле ресурсов, одну для заголовка и одну для сообщения

Addresstitle {0} save
you will be send to {0} for {1} verification dear {2}

Как я могу установить этот текст в файле ресурсов динамически?

1 Ответ

1 голос
/ 19 марта 2020

Я не уверен насчет структуры вашего проекта, но вот идея высокого уровня, как решить эту проблему:

  1. Вы сохраняете свои строки в некотором ресурсе C# класс, называемый Resources ($ TITLE $, $ FORM $ и $ CUSTOMER $ - это заполнители, которые будут заменены позже в JS):

    • Ключ: Заголовок Значение: Адресат $ TITLE $ save
    • Ключ: Сообщение Значение: вы будете отправлены на $ FORM $ для проверки, уважаемый $ CUSTOMER $ .
  2. На странице Razor, где вы готовите представление, вы также можете предоставить ресурсы на стороне сервера в виде объекта JS в своем представлении, чтобы браузер / JavaScript также мог используйте их:

<script>
  var resourceObj = {
      title: '@Resources.Title',
      message: '@Resources.Message'
  }
</script>
Как только представление загружено в браузер, вы можете использовать JavaScript для доступа к этому JS объекту и установить заголовок и сообщение диалога:
bootbox.dialog({
   title: resourceObj.title.replace("$TITLE$", ADDRESS),
   message: resourceObj.message.replace("$FORM$", fromaddress).replace("$CUSTOMER$", customer),
   buttons: {
       success: {
           label: "Next,
           className: "btn btn-success",
           callback: function(){
               //some logic
           }
       }
   }
});

resourceObj является частью глобального пространства имен JS в этом примере, чтобы сделать все проще.

...