问题描述: 在ASP.NET Core 2.1 REST API中,无法接受来自Angular2的RequestOptionsArgs参数。
解决方法:
在Angular2中,使用HttpClient模块来发送HTTP请求,而不是使用旧的Http模块。HttpClient模块提供了更现代化和易用的API。
确保你的ASP.NET Core 2.1 REST API的控制器方法接受常规的HTTP请求对象,而不是特定于Angular的RequestOptionsArgs对象。可以使用以下代码示例进行更改:
在ASP.NET Core 2.1的控制器中:
using Microsoft.AspNetCore.Mvc;
using System.Net.Http;
namespace YourNamespace
{
[Route("api/[controller]")]
[ApiController]
public class YourController : ControllerBase
{
[HttpGet]
public IActionResult YourMethod([FromQuery] YourModel model)
{
// Your code here
return Ok();
}
}
public class YourModel
{
// Your model properties here
public string Property1 { get; set; }
public int Property2 { get; set; }
}
}
在Angular2中的服务中:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class YourService {
constructor(private http: HttpClient) { }
yourMethod(model: YourModel) {
const url = 'api/yourcontroller?property1=' + model.property1 + '&property2=' + model.property2;
return this.http.get(url);
}
}
export class YourModel {
property1: string;
property2: number;
}
这样,你就可以在Angular2中使用HttpClient模块发送HTTP请求,并在ASP.NET Core 2.1的控制器中接受常规的HTTP请求对象,从而解决问题。