Tôi cần triển khai phương pháp WebAPI sau:
/api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX
Tất cả các tham số chuỗi truy vấn có thể là null. Nghĩa là, người gọi có thể chỉ định từ 0 đến tất cả 5 tham số.
Trong MVC4 beta, tôi đã từng làm như sau:
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 không hoạt động như thế này nữa. Nếu tôi chỉ định ít hơn 5 tham số, nó sẽ trả lời bằng một 404
câu:
Không có hành động nào được tìm thấy trên bộ điều khiển 'Sách' phù hợp với yêu cầu.
Chữ ký phương thức chính xác để làm cho nó hoạt động như trước đây mà không phải chỉ định tham số tùy chọn trong định tuyến URL là gì?
Get
vì vậy nó được tự động ràng buộc với HTTP GET
phương thức ...
string?
không phải là một loại hợp lệ. Bạn không thể khai báo string
là loại nullable vì đây là loại tham chiếu.