ASP.NET MVC4 Web API v1-Controller ist unten definiert. Es sollte 1 oder 2 Parameter der Abfragezeichenfolge akzeptieren.Erzwingen der Web-API zum Erkennen des Querystring-Parameters
Ko-Parameter ist jedoch immer null, wenn die Methode aufgerufen wird. Anfrage ist unten. Wie zu beheben, damit Klient oder Namepart-Parameter in Abfragezeichenfolge übergeben werden können?
Web API v1 Controller:
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() });
}
}
}
-Controller auf Wunsch aufgerufen wird (Appl von erp unseren virtuellen Verzeichnis ausgeführt wird):
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
Standard-Routing verwendet wird:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Anwendung muss ausgeführt werden Win Windows 2003 Server auch so Web API v.2 kann nicht verwendet werden.
aktualisieren
ich auch
versuchtpublic HttpResponseMessage Get(string klient, string namepart)
aber in diesem Fall 404 Fehler zurückgegeben wird, wird Aktion nicht gefunden.
Haben Sie das Attribut '[FromUri]' auf dem Parameter versucht? –