Buna oldukça geç kaldım ama benzer sorunlar yaşıyordum ve burada bir sürü cevabın üzerinden geçip arka plan elde ettikten bir gün sonra bir veya daha fazla parametreyi bir Web API 2'ye geri geçirmek için en kolay / hafif çözümü buldum. aşağıdaki gibidir:
Bu kurulum için doğru yönlendirme ile bir Web API kontrolör / eylem, bakın değilse bildiği varsayımıyla: https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with -aspnet-web-api / öğretici-your-ilk-web api .
İlk olarak Denetleyici Eylemi, bu çözüm aynı zamanda Newtonsoft.Json kütüphanesini de gerektirir.
[HttpPost]
public string PostProcessData([FromBody]string parameters) {
if (!String.IsNullOrEmpty(parameters)) {
JObject json = JObject.Parse(parameters);
// Code logic below
// Can access params via json["paramName"].ToString();
}
return "";
}
JQuery kullanarak İstemci Tarafı
var dataToSend = JSON.stringify({ param1: "value1", param2: "value2"...});
$.post('/Web_API_URI', { '': dataToSend }).done(function (data) {
console.debug(data); // returned data from Web API
});
Bulduğum en önemli sorun, Web API'sına yalnızca tek bir genel parametre gönderdiğinizden ve adının yalnızca değerinin olmadığından emin olmanızdı, { '': dataToSend }
aksi takdirde değeriniz sunucu tarafında boş olacaktır.
Bununla, bir JSON yapısında Web API'sına bir veya daha fazla parametre gönderebilirsiniz ve karmaşık verileri işlemek için sunucu tarafında herhangi bir ekstra nesne bildirmeniz gerekmez. JObject ayrıca, parametreleriniz zaman içinde değiştiğinde daha kolay ölçeklenebilirliğe olanak tanıyarak geçirilen tüm parametreler üzerinde dinamik olarak yinelemenize olanak tanır. Umarım bu benim gibi mücadele eden birine yardım eder.