亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何構建一個 ASP.Net core Web api Enpoint 來處理帶有等號“=”

如何構建一個 ASP.Net core Web api Enpoint 來處理帶有等號“=”

PHP
莫回無 2024-01-20 15:49:39
我想獲取一個從此 Angular 打字稿前端代碼構建的端點  getPartNumbersFromManufacture(manufactureNameId : Number)  {    let parameter = new HttpParams().set("FKManufactureNameId", manufactureNameId.toString())     return this.http.get<ManufacturePartNumber[]>(this.manufactureUrl + '/PartNumber', {params: parameter}).pipe(      tap(data => console.log('All: ' + JSON.stringify(data))),      catchError(this.handleError)    );  }這會產生如下所示的請求:Request URL: https://localhost:5001/api/Manufacture/PartNumber?FKManufactureNameId=14703Request Method: GETStatus Code: 200 OKRemote Address: [::1]:5001Referrer Policy: no-referrer-when-downgrade.netcore C# 代碼如下所示,端點被擊中,但ManufacturerNameID 始終=0,如果我嘗試將其更改為字符串,則它為空。    [Route("api/Manufacture")]    public class ManufactureController : ControllerBase    { ...        [HttpGet("PartNumber/{FKManufactureNameId=manufactureNameID}")]        public IEnumerable<Views.ManufacturePartNumber> PartNumbers(int manufactureNameID) //pass the manufacture id from the frontend and get the part numbers associated with this manufacturer        {            TrackingContext context = new TrackingContext();            IEnumerable<ManufacturePartNumber> manufacturePartNumbers = context.ManufacturePartNumber.Where(n => n.FkManufactureNameId == manufactureNameID);            List<Views.ManufacturePartNumber> manufacturePartNumberView = new List<Views.ManufacturePartNumber>();            for (int i = 0; i < manufacturePartNumbers.Count(); i++)            {                manufacturePartNumberView.Add(new Views.ManufacturePartNumber(manufacturePartNumbers.ElementAt(i)));            }            return manufacturePartNumberView;        }   ...}我做錯了什么,我希望我的 C# 代碼處理這個具有等號的查詢參數,因為這似乎是“HttPClient”類在傳遞“HttpParams”對象時構建查詢參數的標準方式。我知道如何處理沒有“=”的情況,但我猜“=”是新的標準/最佳實踐?
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

您的 api 聲明似乎不準確。

我相信這就是您想要做的:

 [HttpGet("PartNumber")] /* <--- */
 public IEnumerable<Views.ManufacturePartNumber> 
       PartNumbers(/* --> */[FromQuery]int manufactureNameID) 
        {...

您希望從QueryString中獲取參數,因此您可以使用[FromQuery]參數旁邊的屬性來指示,例如:

[FromQuery]int manufactureNameID

此外,您的[HttpGet]屬性不需要添加任何其他內容,但“方法路由”在本例中是 [HttpGet("PartNumber")]


查看完整回答
反對 回復 2024-01-20
  • 1 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號