如何将列表作为文本文件(ASP.NET Core Web API)发送?

How do I send a list as a text file (ASP.NET Core web API)?

提问人:MMD 提问时间:8/12/2023 最后编辑:Mohammad AghazadehMMD 更新时间:8/12/2023 访问量:121

问:

我正在构建一个 ASP.NET 核心 Web API 项目。

我从控制器中的数据库中获取数据:

public IActionResult GetPosts()
{
     var data = _context.posts.firstOrDefault(//expression...)
            
     // Converting data to string...

     return // data as a text file...
}

现在,我必须将数据转换为字符串并将其作为文本文件发送。

我该怎么做?

谢谢你帮助我

C# 文件 ASP.Net-Core 文本 webapi

评论

0赞 Klaus Gütter 8/12/2023
那么什么是数据,字符串应该是什么样子的呢?
0赞 Cleptus 8/12/2023
在问题标题中,您提到要以文本文件的形式发送元素列表。但是在您的代码中,您使用 .无论你里面有什么,都不会是一个元素列表,而是一个单一的元素。.FirstOrDefault()var data
0赞 abolfazl sadeghi 8/12/2023
为什么要文本数据?是否将列表转换为文本?为什么使用 Json?

答:

0赞 user16612111 8/12/2023 #1

在这种情况下,它非常简单,检查数据是否为 null,然后获取您需要的所有详细信息并添加到字符串列表中,然后在用连字符连接列表的元素后将列表中的所有元素写入文本文件

var data = _contexts.posts.FirstOrDefault();
//initialize an empty list 
var list = new List<string>();
//check if it's null
if(data != null){
  //get the post object attributes returned from the database
  var id = data.Id.ToString();;
  var title = data.Title;
  var body = data.Body;
  var postedOn = data.PostedOn.ToString();
  //add the data the list
  list.Add(id);
  list.Add(title);
  list.Add(body);
  list.Add(postedOn);
  
  //join the strings based on the hyphen 
  var sent = string.Join("-",list);
  //write the data to a text file
  using(var writer = new StreamWriter("data.txt", false)){
    writer.Write(sent);
  }
  
}

评论

0赞 Cleptus 8/12/2023
或者使用 XML 常用格式,如 XML 或 JSON(两者都有 API 或内置函数可以为你执行此操作),或者使用自定义格式,如你的答案。问题在于,由于问题缺乏关键信息(主要是期望的输出),您的答案可能有用,也可能根本没有用。
0赞 8/12/2023
@Cleptus,是的,这取决于我的答案是否有效。只有 OP 可以测试并提供反馈。
0赞 Parham Rajabalian 8/12/2023 #2

我们考虑一个泛型列表,假设它是一个字符串:

TextWriter tw = new StreamWriter("SavedList.txt");

foreach (String s in Lists.verbList)
   tw.WriteLine(s);

tw.Close();

另一种方法

using(TextWriter tw = new StreamWriter("SavedList.txt"))
{
   foreach (String s in Lists.verbList)
      tw.WriteLine(s);
}