我对 Blazor 非常陌生,并且正在遵循blazor-workshop教程。
我使用的是 .NET 版本 8.0.100
我使用计数器组件创建了示例项目,并进行了一些测试,我测试的所有内容都工作正常(例如通过 for 循环显示与计数器值相对应的多个表情符号,这种基本的东西)。
我进入了下一步,进行了建立待办事项列表的练习。
我一步步按照指南操作,具有完全相同的代码(步骤 4),但单击“添加待办事项”按钮不会执行任何操作。
我的Todo.razor
组件:
@page "/todo"
<h3>Todo</h3>
<ul>
@foreach(var todo in todos)
{
<li>@todo.Title</li>
}
</ul>
<input placeholder="Something to do" @bind="newTodo" />
<button @onclick="AddTodo">Add</button>
@code {
private List<TodoItem> todos = new();
private string? newTodo;
private void AddTodo()
{
if (!string.IsNullOrWhiteSpace(newTodo))
{
todos.Add(new TodoItem{Title = newTodo});
newTodo = string.Empty;
}
}
}
我尝试在VS Code中调试它:我在“AddTodo()”方法的开头添加了一个断点,结果发现当我单击按钮时没有到达该方法。
我尝试将“Counter.razor”组件的内容(在创建新的 blazor 项目时创建)替换为“Todo.razor”组件的内容,这里一切正常:项目已添加到列表中当我点击按钮时。
有谁知道我在这里做错了什么?
谢谢!!
编辑:我错过了@rendermode InteractiveServer
组件顶部的行。这样就解决问题了!但我没有看到用于标记 ℍ ℍ 的答案正确的绿色标记。
从 .NET 8 开始,他们引入了渲染模式MS 文档
您需要学习该功能并积极将其合并到 .NET 8 Blazor 项目中。
如果您想遵循该教程,我建议您创建一个 .NET 版本<= 7 的 Blazor 应用程序。