ASP.NET MVC4 웹 API v1 컨트롤러는 아래와 같이 정의됩니다. 1 또는 2 개의 쿼리 문자열 매개 변수를 받아 들여야합니다.웹 API가 쿼리 문자열 매개 변수를 인식하도록 강제하는 방법
그러나 ko 매개 변수는 메서드가 호출되면 항상 null입니다. 요청은 아래에 있습니다. klient 또는 namepart 매개 변수를 쿼리 문자열로 전달할 수 있도록 수정하는 방법은 무엇입니까?
웹 API v1을 컨트롤러 : 컨트롤러는 요청에 의해 호출
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 디렉토리에서 실행) :
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
기본 경로가 사용됩니다
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
응용 프로그램은 Windows 2003 서버를 이기고 실행해야하므로 Web API v.2를 사용할 수 없습니다.
업데이트 나는 또한
public HttpResponseMessage Get(string klient, string namepart)
하지만 404 오류가 반환이 경우
시도, 액션 찾을 수 없습니다.
매개 변수에'[FromUri]'속성을 시도 했습니까? –