[英].NET Core MVC Controller not routing to POST function
我在.NET Core MVC REST服務中創建了一個新控制器,並且在調用API時未路由到POST函數。
我已經擁有與該控制器完全相同的格式的現有控制器,我無法確定為什么未調用服務函數。 該請求始終返回通用500錯誤。
網址: https:// address:port / api / TOSResponse
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using MyProject.ActionFilters;
using MyProject.Common.Exceptions;
using MyProject.Services;
namespace MyProject.Controllers
{
[ServiceFilter(typeof(KeyValidatorFilter))]
[Route("api/[controller]")]
public class TOSResponseController : Controller
{
private ITOSResponseService _tosResponseService;
public TOSResponseController(ITOSResponseService tosResponseService)
{
_tosResponseService = tosResponseService;
}
[HttpPost]
public IActionResult Post([FromBody] List<Models.TermsOfServiceResponse> tosResponses)
{
try
{
_tosResponseService.InsertOrUpdate(tosResponses);
return new OkResult();
}
catch (PLException ex)
{
return new BadRequestObjectResult(ex.ErrorValue);
}
}
}
}
您添加為ServiceFilter的KeyValidatorFilter中可能存在此問題。 這將首先受到打擊,並可能在擊中您的控制器之前向用戶拋出500。 您是否在其他控制器中使用此過濾器? 嘗試在調試模式下的過濾器中添加斷點,然后看看會發生什么。
我發現了問題。 由於無法解析對ITOSResponseService
的引用, ITOSResponseService
甚至沒有實例化Controller,我忽略了在Startup.cs
的ConfigureServices
函數中向IoC容器注冊服務:
public class Startup
{
//...
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddTransient<ITOSResponseService, TOSResponseService>();
//...
}
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.