大家好
我目前在Blazor Server上工作。我有一个名为“getUser”的存储过程,在我的SSMS中连接两个表(User和UserContact),我正在使用jQuery Ajax,我想在单击NavMenu时显示用户列表(存储过程)。但我遇到了一个错误:OnInitializedAsync后的状态为500。
下面是我的代码。
//C#代码
protected override async Task OnInitializedAsync()
{
await JSRuntime.InvokeVoidAsync("getCStaffInfo");
}
//JavaScript函数
window.getCStaffInfo = function () {
debugger;
$.ajax({
url: '/api/user',
method: 'GET',
succes: function (data) {
debugger
console.log(data);
}
});
}
//控制器
[Route("api/[controller]")]
[ApiController]
public class UserController: ControllerBase
{
private readonly SampleUserDbContext _context;
public UserController(SampleUserDbContext context)
{
_context = context;
}
[HttpGet]
public async Task<ActionResult<IEnumerable<User>>> GetCStaffInfo()
{
// Execute the stored procedure and return the results
var user = await _context.User.FromSqlRaw("EXECUTE getCstaffInfo").ToListAsync();
return user;
}
}
//Program.cs
app.UseMapControllers();
注意:我也尝试使用服务获取,但仍然发生相同的错误。
1条答案
按热度按时间zfciruhq1#
一个最小的例子(我不知道你的
User
类,所以只是在默认模板中尝试了WeatherForecast类):在RazorComponent中:
在wwwroot文件夹下创建一个js文件(myjs.js),并添加jquery代码:
在_Host.cshtml中添加所需的js文件:
API终点:
现在的结果是:
虽然它可以工作,但我不认为这是一个好的解决方案,通常我们使用httpclient调用API端点,您可以遵循此document