【问题标题】:How do I concatenate strings in C# embedded in Razor page javascript?如何连接嵌入在 Razor 页面 javascript 中的 C# 中的字符串?
【发布时间】:2021-05-13 13:44:41
【问题描述】:

我想在 Razor 页面上的 javascript 函数中格式化一个字符串。 我目前正在通过连接子字符串来做到这一点。

function Foo(actionName, entityName) {
    var message = "Are you sure you want to ".concat(actionName).concat(" ").concat(entityName);
}

我希望能够直接调用 C# 以使用 类似这样的方式更干净地连接子字符串:

@var message = $"Are you sure you want to {actionName} {entityName}";

如何在 Razor 页面 javascript 中使用嵌入式 C# 执行此操作?

【问题讨论】:

    标签: javascript c# razor


    【解决方案1】:

    在 JavaScript 中,可以使用模板文字来格式化字符串。

    Mozilla 的documentation 的一个例子是:

    console.log(`Fifteen is ${a + b} and not ${2 * a + b}.`);
    

    【讨论】:

      【解决方案2】:
      function Foo(actionName, entityName) {
          var message = "Are you sure you want to "+ actionName + " " + entityName;
          console.log(message);
      }
      
      //or this
      function Foo(actionName, entityName) {
          var message = 'Are you sure you want to '+ actionName + ' ' + entityName;
          console.log(message);
      }
      //or this
      function Foo(actionName, entityName) {
          var message = `Are you sure you want to `+ actionName + ` ` + entityName;
          console.log(message);
      }
      //or this
      function Foo(actionName, entityName) {
          var message = [`Are you sure you want to `,actionName,entityName].join(` `);//feel free to use `` or '' or ""
          console.log(message);
      }
      

      【讨论】:

      • 我认为这不是 OP 的想法。
      • @RobertHarvey 你说得有道理。 Julian Goldsmith 已经给出了我会给出的答案。我想我应该添加这个以确保完整性。我认为这仍然比问题中的那个更干净。
      • 我是 Razor 的新手,正在考虑使用嵌入式 C# 功能。
      • 具体来说,我希望用户能够在 Razor 页面上定义类似这样的字符串 $"{personName} 有一个 {petTypeName}"
      猜你喜欢
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2020-10-22
      • 1970-01-01
      相关资源
      最近更新 更多