在数据属性中显示对象

Display object in data attribute

在我的 Index.cshtml 页面上,我有一个 table:

<table>
  <thead>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Age</th>
    <th></th>
  </thead>

  <tbody>
    @foreach(var item in Model)
    {
      <tr>
        <td>Test</td>
        <td>Subject</td>
        <td>100</td>
        <td><a href="#" data-personnel-id="@item.ID" data-personnel="@item" class="js-personnel-detail">Details</a></td>
      </tr>
    }
  </tbody>
</table>

我的目标是将 item 对象分配给数据属性,这样我就不必在其自己的数据属性中指定每个不同的对象 属性。

当我尝试这个时,我在检查元素时得到了这个:

data-personnel="System.Data.Entity.DynamicProxies.Person_EA5AC055D1501E594DFBC8C0E360599F673410050ABB4A55BB0B191F6E442210"

但是 data-personnel-id="7"...所以我可以分配单个属性而不是整个对象。

这可以做到吗?

试试这个:

data-personnel-id="@Model[item].ID" 

看起来 foreach 的处理方式类似于 JS foreach,其中项目实际上只是 属性 的名称,而不是值。

使用JSON.NET...

<div data-object='@JsonConvert.SerializeObject(item)'>