Muszę zaimplementować następującą metodę WebAPI:
/api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX
Wszystkie parametry ciągu zapytania mogą mieć wartość NULL. Oznacza to, że dzwoniący może określić od 0 do wszystkich 5 parametrów.
W wersji beta MVC4 wykonałem następujące czynności:
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 już się tak nie zachowuje. Jeśli podam mniej niż 5 parametrów, odpowiada to 404
powiedzeniem:
Nie znaleziono działania na kontrolerze „Books”, które pasowałoby do żądania.
Jaki jest prawidłowy podpis metody, aby działał tak, jak kiedyś, bez konieczności podawania opcjonalnego parametru w routingu adresu URL?
Get
więc jest automatycznie związany HTTP GET
metodą ...
string?
nie jest prawidłowym typem. Nie można zadeklarować string
jako typu zerowalnego, ponieważ jest to typ odwołania.