คำถามติดแท็ก asp.net-web-api-routing

18
พบการกระทำหลายอย่างที่ตรงกับคำขอใน Web Api
ฉันได้รับข้อผิดพลาดนี้อย่างต่อเนื่องเมื่อพยายามใช้วิธี 2 "รับ" พบการกระทำหลายอย่างที่ตรงกับคำขอ: webapi ฉันได้ดูรอบ ๆ คำถามที่คล้ายกันเกี่ยวกับเรื่องนี้ในกอง แต่ฉันไม่ได้รับมัน ฉันมี 2 ชื่อต่างกันและใช้แอตทริบิวต์ "HttpGet" [HttpGet] public HttpResponseMessage Summary(MyVm vm) { return null; } [HttpGet] public HttpResponseMessage FullDetails() { return null; }

30
พารามิเตอร์การโพสต์เป็นโมฆะเสมอ
ตั้งแต่อัปเกรดเป็น RC สำหรับ WebAPI ฉันมีปัญหาแปลก ๆ จริง ๆ เมื่อเรียก POST บน WebAPI ของฉัน ฉันกลับไปที่เวอร์ชันพื้นฐานที่สร้างในโครงการใหม่ ดังนั้น: public void Post(string value) { } และโทรจาก Fiddler: Header: User-Agent: Fiddler Host: localhost:60725 Content-Type: application/json Content-Length: 29 Body: { "value": "test" } เมื่อฉันดีบักสตริง "value" จะไม่ถูกกำหนดให้ มันเป็น NULL เสมอ ใครมีปัญหานี้ (ฉันแรกเห็นปัญหาด้วยประเภทที่ซับซ้อนมากขึ้น) ปัญหาไม่ได้ถูกผูกไว้กับ ASP.NET MVC 4 เท่านั้นปัญหาเดียวกันนี้เกิดขึ้นสำหรับโครงการ …

3
ใครช่วยอธิบาย CreatedAtRoute () ให้ฉันฟังได้ไหม
จากเทมเพลตสำหรับ Web API 2 วิธีการโพสต์จะเป็นเช่นนี้เสมอ: [ResponseType(typeof(MyDTO))] public IHttpActionResult PostmyObject(MyDTO myObject) { ... return CreatedAtRoute("DefaultApi", new { id = myObject.Id }, myObject); } ฉันไม่เข้าใจCreatedAtRoute()วิธีนี้ ใครสามารถอธิบายCreatedAtRoute()วิธีการให้ฉัน?

11
หลายวิธี HttpPost ในตัวควบคุม Web API
ฉันกำลังเริ่มใช้โครงการ MVC4 Web API ฉันมีคอนโทรลเลอร์ที่มีหลายHttpPostวิธี คอนโทรลเลอร์มีลักษณะดังต่อไปนี้: ตัวควบคุม public class VTRoutingController : ApiController { [HttpPost] public MyResult Route(MyRequestTemplate routingRequestTemplate) { return null; } [HttpPost] public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate) { return null; } } ในที่นี้MyRequestTemplateแสดงถึงคลาสเทมเพลตที่รับผิดชอบในการจัดการ Json ที่มาจากการร้องขอ ข้อผิดพลาด: เมื่อฉันขอโดยใช้ Fiddler http://localhost:52370/api/VTRouting/TSPRouteหรือhttp://localhost:52370/api/VTRouting/Route ฉันได้รับข้อผิดพลาด: พบการดำเนินการหลายรายการที่ตรงกับคำขอ หากฉันลบวิธีใดวิธีหนึ่งข้างต้นก็ใช้ได้ดี Global.asax ฉันได้ลองแก้ไขตารางเส้นทางเริ่มต้นglobal.asaxแล้ว แต่ฉันยังคงได้รับข้อผิดพลาดฉันคิดว่าฉันมีปัญหาในการกำหนดเส้นทางใน global.asax นี่คือสิ่งที่ฉันทำใน global.asax public static …

8
ชื่อเมธอดที่กำหนดเองใน ASP.NET Web API
ฉันกำลังแปลงจาก WCF Web API เป็น ASP.NET MVC 4 Web API ใหม่ ฉันมี UsersController และฉันต้องการมีเมธอดชื่อ Authenticate ฉันเห็นตัวอย่างวิธีการทำ GetAll, GetOne, Post และ Delete แต่ถ้าฉันต้องการเพิ่มวิธีการพิเศษในบริการเหล่านี้จะเป็นอย่างไร ตัวอย่างเช่น UsersService ของฉันควรมีเมธอดที่เรียกว่า Authenticate โดยที่พวกเขาส่งผ่านชื่อผู้ใช้และรหัสผ่าน แต่จะไม่ได้ผล public class UsersController : BaseApiController { public string GetAll() { return "getall!"; } public string Get(int id) { return "get 1! " …

3
พารามิเตอร์ทางเลือกใน Web Api Attribute Routing
ฉันต้องการจัดการ POST ของ API-Call ต่อไปนี้: /v1/location/deviceid/appid พารามิเตอร์เพิ่มเติมมาจาก Post-Body ทั้งหมดนี้ใช้ได้ดีสำหรับฉัน ตอนนี้ฉันต้องการขยายโค้ดของฉันโดยอนุญาตให้ "deviceid" และ / หรือ "appid" และ / หรือ BodyData เป็นโมฆะ: /v1/location/deviceid /v1/location/appid /v1/location/ URL ทั้ง 3 นี้ควรตอบสนองด้วยเส้นทางเดียวกัน แนวทางแรกของฉัน (จำเป็นต้องใช้ BodyData): [Route("v1/location/{deviceid}/{appid}", Name = "AddNewLocation")] public location_fromuser Post(string deviceid = null, string appid = null, [FromBody] location_fromuser BodyData) { return repository.AddNewLocation(deviceid, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.