【问题标题】:How to read a local text file in Blazor WASM project?如何在 Blazor WASM 项目中读取本地文本文件?
【发布时间】:2021-06-05 18:18:31
【问题描述】:

我有一个带有 TodoTodoList 模型的 Blazor WASM(非托管)项目。我将一个文本文件放在 wwwroot 文件夹中,并尝试通过传递路径 File.ReadAllLines() 方法在 TodoList 构造函数中读取它“todos.txt”

项目结构:

public class TodoList
{
    public TodoList()
    {
        Todos = new List<Todo>();
        try
        {
            var lines = File.ReadAllLines("todos.txt");
            foreach (string line in lines)
            {
                Todos.Add(new Todo { Title = line });
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"{ex.Message}");
        }
    }

    public List<Todo> Todos { get; set; }
}
public class Todo
{
    public string Title { get; set; }
    public bool Checked { get; set; } = false;
}

我在 razor 组件中创建 TodoList 对象:

@page "/todopage"
...
@code {
    private TodoList todoList = new TodoList();
    ...
}

运行应用程序抛出异常:找不到文件“/todos.txt”。虽然我可以在应用运行时直接通过请求https://localhost:44361/todos.txt打开文件。

为什么应用找不到文本文件?如何打开阅读?

【问题讨论】:

    标签: asp.net-core blazor blazor-webassembly


    【解决方案1】:

    您可以使用 Http.GetStringAsync()。 你可以点击这个link

    【讨论】:

      【解决方案2】:

      它无法找到该文件,因为它只是服务器上的一个资源,直到您获取它。

      因此,您可以使用 HttpClient 来获取它(您已经知道 URL)或者您可以将其设为嵌入式资源并从资源流中读取它。

      我会使用 HttpClient 来获取它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-23
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多