Ska*_*uba 0 c# .net-core asp.net-core asp.net-core-webapi .net-6.0
我的问题可能看起来很简单,但我被这个问题困扰了一段时间。
代码控制器:
[Route("api/ReceiptOrders/{receiptOrderNo}/[controller]")]
[ApiController]
public class ReceiptPositionsController : ControllerBase
{
[HttpPost("{orderNo}")]
public async Task<IActionResult> PostReceiptOrderPositions(
[FromBody] IEnumerable<ReceiptPositionForCreationDto> receiptPositions)
{
var receiptOrder = await _repositoryManager.ReceiptOrder.GetReceiptOrderByOrderNoAsync(receiptOrderNo, false);
//More code here...
}
}
Run Code Online (Sandbox Code Playgroud)
网址:https://localhost:7164/api/ReceiptOrders/RO-20220731-4/ReceiptPositions
我的问题是:如何获取 ReceiptOrderNo(在本例中为 RO-20220731-4)?我需要它来填充“GetReceiptOrderByOrderNoAsync”方法。
通过在方法中添加另一个参数来绑定到模板条目。此外,从方法的属性中删除模板。方法的模板附加到类的模板中,因此您当前拥有的模板将不匹配。
[Route("api/ReceiptOrders/{receiptOrderNo}/[controller]")]
[ApiController]
public class ReceiptPositionsController : ControllerBase
{
[HttpPost] // <--- no template
public async Task<IActionResult> PostReceiptOrderPositions(
[FromRoute] string receiptOrderNo, // <---- new parameter
[FromBody] IEnumerable<ReceiptPositionForCreationDto> receiptPositions)
{
// ... use "receiptOrderNo"
}
Run Code Online (Sandbox Code Playgroud)
您不需要,但我认为这是一个好主意,因为它明确了应该从哪里读取值,而不是意外地从查询字符串或其他源读取。 [FromRoute]
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |