Api'm üzerinde, bir nesneyi dışarı çeken ve bir biçimlendirici aracılığıyla döndüren genel GetById ve GetByIds olan bir sürü işlem var.Web API'sında int [] parametresini nasıl yapabilirim?
Bu işlemler şu şekilde görünür:
[HttpGet]
[Route("ByIds")]
public IHttpActionResult ByIds([FromUri]int[] ids)
{
var items = _myContext.SomeEntity.Where(a => ids.Contains(a.ID)).ToList();
return SomeFormatter(items);
}
örneğin http://localhost/api/SomeEntity/ByIds?ids=1&ids=2
ile bu vurursan beklediğiniz gibi bir 1'den dizi ve 2 olsun.
http://localhost/api/SomeEntity/ByIds?ids=
ile buna bastığınızda boş bir dizi elde etmeyi bekleyebilirsiniz, ancak 0
değerini içeren int[1]
elde edersiniz.
ben ne olur onu belirtilen bir eleman olarak tanır şüpheli, bu yüzden default(int)
kullanır ve koyar, dönüştürmek olamaz sana bir değere sahip bir int dizisi, 0'a
değerini verir dizi haline Ancak, http://localhost/api/SomeEntity/ByIds?ids=potato
ile vurursanız, geçersiz bir modele alırsınız ve otomatik olarak bunu hallederim.
Sorun, boş bir sorgu parametresi değerini boş bir diziye veya bir ModelState hatasına (yani boş bir değer sağladığınızda patatesle aynı davranışı) eşleme tüm yaklaşımını yakalama nedir? Ben bir modelstate hatası tercih ve daha mantıklı olacağını düşünüyorum.
gireceğim. bir çözüm buldun mu? Benim durumumda ModelState hatasına boş bir diziyi tercih ederim. –