ASP.NET MVC4 Web API v1 denetleyicisi aşağıda tanımlanmıştır. 1 veya 2 sorgu dizesi parametrs kabul etmelidir.Web API'sini querystring parametresini tanımak için nasıl zorlanırsınız
Ancak, yöntem çağrılırsa ko parametresi her zaman boştur. İstek aşağıda. Klient veya namepart parametresinin sorgu dizesinde iletilebilmesi nasıl düzeltilir?
Web API v1 kontrolörü: Denetleyici isteği ile çağrılır
namespace MyApp.Controllers
{
public class CustomersSearchViewModel
{
public string Klient { get; set; }
public string Namepart { get; set; }
}
[Authorize]
public class CustomersController : ApiController
{
public HttpResponseMessage Get(CustomersSearchViewModel ko)
{
// why ko is null ?
var res = GetCustomers(ko.Klient,ko.Namepart);
return Request.CreateResponse(HttpStatusCode.OK,
new { customers = res.ToArray() });
}
}
}
(Appl erp virtal dizinden çalışıyorsa):
GET /erp/api/customers?namepart=kaks&_=1385320904347 HTTP/1.1
Host: localhost:52216
Connection: keep-alive
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Referer: http://localhost:52216/erp/Sale
Accept-Encoding: gzip,deflate,sdch
Accept-Language: et-EE,et;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: .myAuth=8B6B3CFFF3DF64EBEF3D258240D217C56603AF255C869FBB7934560D9F560659342DC4D1EAE6AB28454122A86C3CE6C598FB594E8DC84A; My_Session=5aw2bsjp4i4a5vxtekz
varsayılan yönlendirme kullanılır:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Uygulama, Windows 2003 sunucusunu da çalıştırmalı ve böylece Web API v.2 kullanılamaz.
Güncelleme Ayrıca
public HttpResponseMessage Get(string klient, string namepart)
ama 404 hatası döndürülür bu durumda
çalıştı, aksiyon bulunamadı.
Parametrede '[FromUri]' özniteliğini denediniz mi? –