如何在c#中动态地将名称附加到数据属性

Posted

技术标签:

【中文标题】如何在c#中动态地将名称附加到数据属性【英文标题】:How to dynamically append a name to a data attribute in 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 属性的名称?因此,我建议您尝试做的不是一个好的解决方案,而替代方案会更好。 【参考方案1】:

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

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

【讨论】:

以上是关于如何在c#中动态地将名称附加到数据属性的主要内容,如果未能解决你的问题,请参考以下文章

我可以动态地将计算属性插入到 Vue 组件中吗

如何在 C# 中使用类型和属性名称从 XML 创建动态对象?

Javascript动态地将函数附加到对象

如何在angularjs中动态地将样式属性添加到具有ng-class的元素

如何动态地将许多具有不同名称的标签添加到滚动视图中

如何有效地将数据附加到 C 中的 HDF5 表?