【发布时间】:2021-12-27 17:13:09
【问题描述】:
我是 Blazor 的新手,我有一个关于 Blazor 和 API 的问题。
在我的.razor 文件中,我有这段代码,我可以在其中获取数据以填写我的表格(所以这段代码有效):
@code {
public PrgUser[] users { get; set; }
IList<PrgUser> selectedUser;
protected override async Task OnInitializedAsync()
{
users = await Http.GetFromJsonAsync<PrgUser[]>("http://localhost:30958/api/Test");
selectedUser = users.Take(1).ToList();
}
}
此代码与 API 端的以下代码配合得很好:
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly IneosAppDevContext _context;
public TestController(IneosAppDevContext context)
{
_context = context;
}
// GET: api/Areas
[HttpGet]
public async Task<ActionResult<IEnumerable<PrgUser>>> GetUser()
{
return await _context.PrgUser.ToListAsync();
}
}
但现在我想添加一个DELETE 函数,但我不知道该怎么做。我有这段代码,但它不能这样工作......
.razor文件:
@code {
public PrgUser[] users { get; set; }
IList<PrgUser> selectedUser;
protected override async Task OnInitializedAsync()
{
users = await Http.GetFromJsonAsync<PrgUser[]>("http://localhost:30958/api/Test");
selectedUser = users.Take(1).ToList();
}
protected async Task Enter()
{
Console.WriteLine("Pressed");
var response = await Http.DeleteAsync("http://localhost:30958/api/Test/" + selectedUser[0].UserId);
}
}
API 端:
[HttpDelete]
[Route("/api/Test/{id}")]
public async Task<HttpResponseMessage> Delete(int id)
{
var user = await _context.PrgUser.FindAsync(id);
if (user == null)
{
// if ID not found
return new HttpResponseMessage(HttpStatusCode.NotFound);
}
try
{
// Success
_context.PrgUser.Remove(user);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
// Exception
return new HttpResponseMessage(HttpStatusCode.ExpectationFailed);
}
【问题讨论】:
-
“我有这个代码,但它不能这样工作......” - 你是什么意思?它似乎以什么方式不起作用。正在执行什么代码?
-
提供所有错误消息并说明实际结果与预期结果。
-
@KirkWoll 我尝试使用该代码,但它不起作用。我的问题是是否有人知道我的错。