【问题标题】:replace string dynamically in resource file在资源文件中动态替换字符串
【发布时间】:2020-03-19 07:40:01
【问题描述】:

在我的 cshtml 页面中,我有一个像这样的引导框对话框

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}

如何在资源文件中动态设置此文本?

【问题讨论】:

  • 在您的 cshtml 中使用 string.Format 来替换资源文本占位符({0}、{1}....) - 如果值在服务器端可用。如果您的 ADDRESS、formaddress 和 customer 是 JavaScript vars/props,那么您需要在 JavaScript 中进行。
  • ADDRESS 是模态属性吗?
  • @UdaraKasun 是的,它来自淘汰赛。
  • @IMujagic 是的,它们是 javascript var 但如何替换它

标签: c# bootbox resource-files


【解决方案1】:

我不确定您的项目结构,但这里是如何解决这个问题的高级想法:

  1. 您将字符串存储到名为 Resources 的资源 C# 类中($TITLE$、$FORM$ 和 $CUSTOMER$ 是占位符,稍后将在 JS 中替换):

    • 键:标题 值:地址标题$TITLE$保存
    • 密钥:消息值:您将被发送到$FORM$进行验证亲爱的$CUSTOMER$。
  2. 在您准备视图的 Razor 页面中,您还可以在视图中将服务器端资源作为 JS 对象提供,以便浏览器/JavaScript 也可以使用它们:

<script>
  var resourceObj = {
      title: '@Resources.Title',
      message: '@Resources.Message'
  }
</script>
  1. 在浏览器中加载视图后,您可以使用 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 全局命名空间的一部分,只是为了让一切更简单。

【讨论】:

  • 将资源文件提取到 resouceObj 时出错。它说意外的标识符
  • 我已经编辑了我的答案。我认为,您必须将 resourceObj 道具值放在单引号下..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 2016-09-24
  • 1970-01-01
  • 2019-05-01
  • 2015-05-10
相关资源
最近更新 更多