我有一个 blazor WASM 应用程序,包含 3 个项目:客户端、服务器、共享。
作为一个简单的示例,我将通过以下方式从客户端调用我的 API:
var result = await http.GetAsync($"{controller}/GetAllItems");
在服务器端我的 API 定义为:
[ApiController]
[Route("[controller]/[action]")]
public class ItemController : Controller
[HttpGet]
public async Task<ActionResult<List<POCO>>> GetAllItems()
{
var items = await repository.GetItems();
return Ok(items);
}
这段代码已经运行良好两周了。 直到今天,它停止工作了。 经过调试,我发现名称:GetAllItems不再起作用。
将方法名称从 GetAllItems 更改为 GetAllItemsNew 后,代码再次正常工作。
几个小时后,用另一种方法又发生了这种情况。
blazor API 会停止路由到特定方法名称,但继续为其他方法名称工作,这是否有原因?
编辑
按照评论中的建议,我安装了Postman。 我无法通过 Postman 连接到我的 API。 在我的应用程序中:
在邮递员
我收到以下错误:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>TestApp</title>
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
<link href="TestApp.Client.styles.css" rel="stylesheet" />
</head>
<body>
<div id="app">Loading...</div>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
</body>
</html>
Абсолютно идентичная ситуация。方法: 关闭按钮、关闭按钮 Ctrl + f5、关闭按钮和关闭按钮。 Помогла очистка кэша браузера вручную через историю браузера.