如何读取 Blazor WASM 项目中的本地文本文件?
How to read a local text file in Blazor WASM project?
我有一个 Blazor WASM(非托管)项目,其中包含 Todo 和 TodoList 模型。我将一个文本文件放在 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 当应用程序是 运行.
为什么应用程序找不到文本文件?如何打开并阅读?
它找不到该文件,因为在您获取它之前它只是服务器上的一个资源。
因此,您可以使用 HttpClient 来获取它(您已经知道 URL)或者您可以将其作为嵌入式资源并从资源流中读取它。
我会使用 HttpClient 来获取它。
您可以使用Http.GetStringAsync()。
你可以点击这个.
我有一个 Blazor WASM(非托管)项目,其中包含 Todo 和 TodoList 模型。我将一个文本文件放在 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 当应用程序是 运行.
为什么应用程序找不到文本文件?如何打开并阅读?
它找不到该文件,因为在您获取它之前它只是服务器上的一个资源。
因此,您可以使用 HttpClient 来获取它(您已经知道 URL)或者您可以将其作为嵌入式资源并从资源流中读取它。
我会使用 HttpClient 来获取它。
您可以使用Http.GetStringAsync()。
你可以点击这个