DataContract对象列表为CSV字符串

时间:2015-07-09 11:57:22

标签: c# asp.net xml asp.net-mvc csv

我有一个Product列表(如下面)对象,我想从此对象转换csv字符串

[DataContract]
public class Product
{
    [DataMember]
    [XmlElement("title", Namespace = "")]
    public string Name { get; set; }

    [DataMember]
    [XmlElement("link", Namespace = "")]
    public string ProductUrl { get; set; }
}

以下方法不能给我正确的输出

[WebGet(UriTemplate = "csv")]
public string GetCollectionAsCsv()
{
    if (WebOperationContext.Current != null)
    {
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/csv";
        WebOperationContext.Current.OutgoingResponse.Headers["Content-Disposition"] = "attachment; filename=\"products.csv\"";
    }

    List<Product> resultList = _boutiqueManager.GetProducts();
    var sb = new StringBuilder();
    foreach (Product obj in resultList)
    {

        sb.Append(String.Join(",", obj));
    }
    return sb.ToString();

}

结果 enter image description here

我应该在这里获得正确的csv结果

1 个答案:

答案 0 :(得分:1)

检查此行:sb.Append(String.Join(",", obj)); 你在这里追加对象的类型,而不是一些值。

尝试sb.Append(String.Join(",", obj.Name));之类的内容 例如,附加名称列表