【问题标题】:How to dynamically append a name to a data attribute in c#如何在c#中动态地将名称附加到数据属性
【发布时间】:2021-11-15 23:42:39
【问题描述】:

是否可以在razor cshtml中动态命名数据属性?

例如: 我有一些 TempData 可能带有一个或多个键,例如:

TempData["Key1"] = "My first value";
TempData["Key2"] = "My second value";

在我的页面上是这样的:

      @foreach (var key in TempData.Keys)
      {
        <div hidden data-message="@TempData[key]"></div>
      }

输出是:

<div hidden data-message="My first value"></div>
<div hidden data-message="My second value"></div>

我想通过 jquery 访问这些值,并希望有一个唯一的数据名称,例如:

data-message-key1
data-message-key2

所以一个解决方案(我希望可能存在!)是这样的:

<div hidden data-message-@magicHappensHereHopefully />

任何想法或想法表示赞赏!谢谢:D

【问题讨论】:

  • data-message-@key.ToLower()="@TempData[key]" 可以。也就是说,数据名称的好处是按行为对属性进行分组。如果您在运行时生成名称,客户端代码应该如何知道它需要访问的data 属性的名称?因此,我建议您尝试做的不是一个好的解决方案,而替代方案会更好。

标签: c# html jquery asp.net-mvc razor


【解决方案1】:

好的,问得太早了哈哈 对于任何想知道的人:

        @Html.Raw($"<div hidden data-message-{key}='{TempData[key]}'></div>");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2016-03-12
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多