如何在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#中动态地将名称附加到数据属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中使用类型和属性名称从 XML 创建动态对象?