You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CSHTML的Bootbox对话框中动态使用资源文件字符串?

实现Bootbox对话框动态调用资源字符串的方法

嘿,我来一步步教你搞定这个需求:

1. 确认资源文件配置

首先你已经在资源文件里创建了两个带占位符的字符串:

  • 标题资源键(比如AddressDialogTitle):值为Addresstitle {0} save
  • 消息资源键(比如AddressDialogMessage):值为you will be send to {0} for {1} verification dear {2}

记得替换成你实际的资源文件名和键名哦。

2. 在CSHTML中引入资源字符串

在你的CSHTML视图里,通过Razor语法获取资源文件里的字符串,把它们传递给前端JS:

@{
    // 替换成你的资源文件命名空间和键名
    var dialogTitle = Resources.MyResources.AddressDialogTitle;
    var dialogMessage = Resources.MyResources.AddressDialogMessage;
}

3. 编写JS字符串格式化函数

原生JavaScript没有像C#那样的String.Format方法,我们自己写一个简单的工具函数,用来替换字符串里的{0}、{1}这类占位符:

// 模拟C# String.Format的格式化函数
function formatString(str, ...args) {
    return str.replace(/{(\d+)}/g, function(match, index) {
        return args[index] !== undefined ? args[index] : match;
    });
}

4. 动态生成Bootbox对话框内容

现在把资源字符串和你的动态变量结合,生成最终的标题和消息:

// 假设ADDRESS、fromaddress、customer是你已经定义好的动态变量
var formattedTitle = formatString('@Html.Raw(dialogTitle)', ADDRESS);
// 参数顺序对应占位符{0}、{1}、{2}
var formattedMessage = formatString('@Html.Raw(dialogMessage)', fromaddress, 'verification', customer);

// 初始化Bootbox对话框
bootbox.dialog({ 
    title: formattedTitle, 
    message: formattedMessage, 
    buttons: { 
        success: { 
            label: "Next", 
            className: "btn btn-success", 
            callback: function(){ 
                // 这里放你的业务逻辑
            } 
        } 
    } 
});

小细节说明

  • 用@Html.Raw()包裹资源字符串是为了防止Razor自动转义占位符里的大括号,确保{0}这类标记能原样传递给JS。
  • 如果{1}位置需要动态值(不是固定的"verification"),直接把第三个参数换成对应的变量就行。

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:53:12