我有一个基于 ASP.NET Core 3.1 的项目,在其中使用 jQuery-Unobtrusive 和jQuery-Unobtrusive-AJAX验证表单。提交表单后,我收到 HTTP 415 错误。
以下是我的控制器的代码。
[Route("api/[controller]"), ApiController]
public class ScheduleController : ControllerBase
{
private readonly IEmailSender Emailer;
public ScheduleController(IEmailSender emailer)
{
Emailer = emailer;
}
[HttpPost(Name = "Schedule"), ValidateAntiForgeryToken]
public async Task<ActionResult<bool>> Schedule([FromBody]Schedule viewModel)
{
if (!ModelState.IsValid)
{
return Problem(false);
}
bool sent = await Emailer.SendEmailAsync("Schedule Request", viewModel.GetMessage());
return Ok(sent);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的表格的精简版本
<form asp-route="Schedule" data-ajax="true" data-ajax-method="POST" data-ajax-begin="onBegin" data-ajax-failure="onFailed" data-ajax-success="onSuccess">
@* fields... *@
</form>
Run Code Online (Sandbox Code Playgroud)
我尝试更改[FromBody]为[FromForm]并尝试将其完全删除,但似乎没有任何方法可以修复此错误。
这是原始请求标头
Host: localhost:1234
User-Agent: …Run Code Online (Sandbox Code Playgroud) jquery unobtrusive-validation asp.net-core asp.net-core-3.0 asp.net-core-3.1
我有一个基于 ASP.NET Core 3.1 的应用程序。我通常会DbContext使用这样的东西来注册
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(scope =>
{
scope.UseMySql(Configuration.GetConnectionString("ConnectionString"));
});
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是,在本例中,我尝试使用构建在 ASP.NET Core 3.1 框架之上的OrchardCore 。我需要使用该IDbConnectionAccessor服务来获取DbConnection. 所以,我可以注册AppDbContext,我想检索IDbConnectionAccessor。
我试过这个
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(scope =>
{
var accessor = scope.GetRequiredService<IDbConnectionAccessor>();
scope.UseMySql(accessor.CreateConnection());
});
// ...
}
Run Code Online (Sandbox Code Playgroud)
但该行var accessor = scope.GetRequiredService<IDbConnectionAccessor>();给了我以下错误
错误 CS1929“DbContextOptionsBuilder”不包含“GetRequiredService”的定义,并且最佳扩展方法重载“ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider)”需要“IServiceProvider”类型的接收器
在注册IDbConnectionAccessor之前如何获取实例?AppDbContext