将 class 对象发送到 asp.net 核心网络 api 来自 angular 12 的 http get 方法
Sending class objet to asp.net core web api http get method from angular 12
我有一个网络 api 方法如下
`
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly ISearchService _searchService;
public TestController(IRequestService searchService)
{
_searchService = searchService;
}
[HttpGet, Route("search")]
public List<ResponseViewModel> search([FromBody] SearchViewModel search)
{
return _searchService.GetSearchResults(search);
}
}`
SearchViewModel.cs
`public class SearchViewModel
{
public int ProductId { get; set; }
public int StatusId { get; set; }
public int ItemId { get; set; }
}
`
问题:
我想将 SearchViewModel class 类型的对象发送到上述 Http Get 操作方法 angular 12.
我可以用 HttpPost 通过用 [FromBody][=32 装饰 search 参数来实现这个=]。但是有人可以告诉我如何使用 HttpGet .
来做到这一点吗
提前致谢。
HttpGet 不能 post 正文。所以你不能用 HTTP get 方法传递一个对象。但是您可以传递 URL 查询参数,然后稍后在控制器中捕获它们。
比如您可以通过查询参数传递这些数据。那么您的 url 可能与查询参数类似。
http://yourbaseurl/search?ProductId=1&StatusId=34&ItemId=190
然后你可以像这样在 c# 中捕获参数。
public IActionResult YourAction([FromQuery(Name = "ProductId")] string productId,[FromQuery(Name = "StatusId")] string statusId, [FromQuery(Name = "ItemId")] string itemId)
{
// do whatever with those params
}
我有一个网络 api 方法如下 `
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly ISearchService _searchService;
public TestController(IRequestService searchService)
{
_searchService = searchService;
}
[HttpGet, Route("search")]
public List<ResponseViewModel> search([FromBody] SearchViewModel search)
{
return _searchService.GetSearchResults(search);
}
}`
SearchViewModel.cs
`public class SearchViewModel
{
public int ProductId { get; set; }
public int StatusId { get; set; }
public int ItemId { get; set; }
}
`
问题:
我想将 SearchViewModel class 类型的对象发送到上述 Http Get 操作方法 angular 12.
我可以用 HttpPost 通过用 [FromBody][=32 装饰 search 参数来实现这个=]。但是有人可以告诉我如何使用 HttpGet .
来做到这一点吗提前致谢。
HttpGet 不能 post 正文。所以你不能用 HTTP get 方法传递一个对象。但是您可以传递 URL 查询参数,然后稍后在控制器中捕获它们。
比如您可以通过查询参数传递这些数据。那么您的 url 可能与查询参数类似。
http://yourbaseurl/search?ProductId=1&StatusId=34&ItemId=190
然后你可以像这样在 c# 中捕获参数。
public IActionResult YourAction([FromQuery(Name = "ProductId")] string productId,[FromQuery(Name = "StatusId")] string statusId, [FromQuery(Name = "ItemId")] string itemId)
{
// do whatever with those params
}