簡體   English   中英

如何從 url 路徑獲取 ID

[英]How To get Id from the url Path

我的問題可能看起來很簡單,但我在這個問題上停留了一段時間。

代碼 Controller:

[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...
    }
}

URL: 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"
    }

不需要[FromRoute] ,但我認為這是一個好主意,因為它明確了應該從哪里讀取值,而不是從查詢字符串或其他來源意外讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM