Estoy tratando de enviar una matriz de objetos al método web Api post ActionResult. mi matriz de objetos se ve así
'[{"TitleFeature":"عنوان یک","ValueFeature":"مقداریک","IdProduct":"1"},{"TitleFeature":"عنوان یک","ValueFeature":"مقداریک","IdProduct":"1"}]'mi función JS se ve así
const uri = '/api/Feature/PostFeatures'; const baseURL = window.location.origin; var dataFeature = getFeature(); var features = JSON.stringify(dataFeature); $.ajax({ contentType: "application/json", dataType: 'json', type: "POST", url: (baseURL + uri), data: features, });mi Controller.cs se ve así
[HttpPost] [AllowAnonymous] public async Task<ActionResult<Feature>> PostFeatures([FromBody] List<Feature> features) { if (features != null) foreach (var item in features) { _context.features.Add(item); } await _context.SaveChangesAsync(); return Ok(); }Uso la autorización basada en roles y este es mi rol:
[Route("api/[controller]")] [ApiController] [Authorize(Roles = "admin")] public class FeatureController : ControllerBase¿Cómo reparar el error 405?
El error 405 significa que ingresó la URL pero la solicitud http no coincide, por lo que si no hay un atributo de ruta en su método de acción, puede intentar cambiar la dirección de la solicitud ajax a .../api/Feature