ฉันต้องใช้วิธีการ WebAPI ต่อไปนี้:
/api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX
พารามิเตอร์สตริงแบบสอบถามทั้งหมดสามารถเป็นค่าว่างได้ นั่นคือผู้เรียกสามารถระบุจาก 0 ถึงพารามิเตอร์ทั้งหมด 5 ตัว
ในMVC4 เบต้าฉันเคยทำสิ่งต่อไปนี้:
public class BooksController : ApiController
{
// GET /api/books?author=tolk&title=lord&isbn=91&somethingelse=ABC&date=1970-01-01
public string GetFindBooks(string author, string title, string isbn, string somethingelse, DateTime? date)
{
// ...
}
}
MVC4 RC ไม่ทำงานเช่นนี้อีกต่อไป หากฉันระบุพารามิเตอร์น้อยกว่า 5 พารามิเตอร์จะตอบกลับด้วย404
คำพูด:
ไม่พบการกระทำใน 'หนังสือ' ของคอนโทรลเลอร์ที่ตรงกับคำขอ
ลายเซ็นวิธีการที่ถูกต้องคืออะไรที่จะทำให้มันทำงานเหมือนที่เคยทำโดยไม่ต้องระบุพารามิเตอร์ทางเลือกในการกำหนดเส้นทาง URL?
Get
จึงถูกผูกไว้โดยอัตโนมัติด้วยHTTP GET
วิธีการ ...
string?
ไม่ใช่ประเภทที่ถูกต้อง คุณไม่สามารถประกาศstring
ว่าเป็นประเภทที่ไม่มีค่าเนื่องจากเป็นประเภทอ้างอิง