Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การเชื่อมโยงพารามิเตอร์ใน C # ASP.NET WebAPI คืออะไร


การโยงเป็นกระบวนการในการตั้งค่าพารามิเตอร์เมื่อ Web API เรียกใช้เมธอด controlleraction

เมธอด Web API พร้อมพารามิเตอร์ประเภทต่างๆ และวิธีปรับแต่งกระบวนการผูกข้อมูล

หากพารามิเตอร์เป็นประเภทธรรมดา เช่น int, bool, double เป็นต้น Web API จะพยายามรับค่าจาก URI (ไม่ว่าจะจากข้อมูลเส้นทางหรือจากสตริงการสืบค้น)

หากพารามิเตอร์เป็นประเภทที่ซับซ้อน เช่น ลูกค้า พนักงาน ฯลฯ Web APIFramework จะพยายามรับค่าจากเนื้อหาคำขอ

เราสามารถเปลี่ยนพฤติกรรมเริ่มต้นของกระบวนการผูกพารามิเตอร์ได้โดยใช้แอตทริบิวต์ [FromBody] และ [FromUri]

จากยูริ

หากพารามิเตอร์เป็นประเภทธรรมดา Web Api จะพยายามรับค่าจาก URI

.NET ประเภท Primitive เช่น double,DateTime,GUID string ชนิดใดก็ได้ที่สามารถแปลงจากประเภท String

ตัวอย่าง

public Student Get(int id){}

จากร่างกาย

หากพารามิเตอร์ประเภท Complex แล้ว Web Api จะพยายามผูกค่าจากเนื้อหาข้อความ

ตัวอย่าง

Public Student Post(Employee employee){}

[จากอูริ]

หากต้องการบังคับให้ Web API อ่านประเภทที่ซับซ้อนจาก URI ให้เพิ่มแอตทริบิวต์ [FromUri] ให้กับพารามิเตอร์

ใช้แอตทริบิวต์ [FromUri] เพื่อบังคับให้ Web Api รับค่าของประเภทที่ซับซ้อนจาก QueryString

ตัวอย่าง

public Student Get([FromUri] Employee employee)
public HttpResponseMessage Get([FromUri] Employee employee) { ... }

[จากร่างกาย]

ใช้แอตทริบิวต์ [FromBody] เพื่อรับค่าของประเภท Primitive จากเนื้อหาคำขอ ตรงข้ามกับค่าเริ่มต้น

ไม่ ไม่อนุญาตให้ใช้ FormBody หลายอันในการดำเนินการครั้งเดียว

หากต้องการบังคับให้ Web API อ่านประเภทง่าย ๆ จากเนื้อหาคำขอ ให้เพิ่ม [FromBody]

ในตัวอย่างนี้ Web API จะใช้ตัวจัดรูปแบบประเภทสื่อเพื่ออ่านค่าของชื่อจากเนื้อหาคำขอ

ตัวอย่าง

public Student Post([FromBody] string name]){...}
public HttpResponseMessage Post([FromBody] string name) { ... }