如何使用打字稿从Razor Page获取List <T>?

时间:2019-07-17 13:48:14

标签: asp.net-mvc typescript razor

我具有ViewModel和Items集合:

public class ItemViewModel{
   public List<Item> Items {get;set;}
}

在我的Index.cshtml上,我有:

@if(Model.Items != null){
     <li><a id="item-id-link" href="#" data-items="@Model.Items"> ...
}

尝试使用打字稿获取数据:

function getData(context: Jquery){
....
     context.find("item-id-link").click(e => {
          const items = #(e.target).data('data-items');
     });
}

由于项目内,我有项目数据类型列表,而不是项目列表:

"System.Collections.Generic.List`1[ItemViewModel]"

我尝试使用for of来枚举此列表中的元素:

for (let item of items) {
     console.log(item);
}

但它会向我返回"System.Collections.Generic.List'1[ItemViewModel]"

的每个单词

我也很累在剃刀页中添加.ToList(),但这无济于事。

您能告诉我在这种情况下我该怎么办?

1 个答案:

答案 0 :(得分:1)

@Model.Items是集合,您需要对此进行更改

@if(Model.Items != null){
  <li><a id="item-id-link" href="#" data-items="@string.Join(", ", Model.Items.Select(c=>c.Id))"> ...  
   // assume Item class has Id property
}